记录锁定

本文档描述如何启用记录锁定功能以及如何锁定和解锁记录。

借助记录锁定功能可以在数据权限安全和字段访问安全之间的级别上控制访问。

使用记录锁定功能可以锁定记录,使其无法在交互式程序和 API 中进行编辑或删除。记录锁定后,任何用户都不允许使用选项 2=“更改”和 4=“删除”。如果有任何可更新记录的相关选项,则同样适用。如果尝试更新或删除锁定的记录,则会显示一条错误消息,指示该记录已在特定程序中锁定。如果您不与记录本身直接交互(例如批处理程序和自动作业),则记录的自动更新免除此验证。

锁定记录有用的情况示例是当它们连接到 ION 中正在进行的工作流上或电子签名待定上。该功能还可以用于锁定不允许用户更改的模板记录,例如物料、供应商或客户的模板。

限制

密钥字符串 (KEYS) 最多可以处理 390 个字符。

启用记录锁定功能

遵循以下步骤启用程序的记录锁定功能:

  1. 启动“列表和打印机程序。配置”(CMS005)
  2. 过滤 4-“记录可能的锁定”。
  3. 找到要启用的程序,然后选择选项 2=“更改”。
  4. 选中“启用记录锁定”复选框,然后单击“下一步”进行保存。
注意

不是所有程序都可启用记录锁定。如果是这种情况,则在过滤 4-“记录可能的锁定”时找不到该程序,并且该复选框不可用。

使用筛选器 5-“记录激活的锁定”,可以搜索已被激活功能的程序。

下表显示了已实施记录锁定功能的程序和 API 示例:

程序 ID 程序名 桌子 API
CRS610 客户。打开 OCUSMA CRS610MI
CRS620 物料/打开 CIDMAS CRS620MI
CRS624 物料/定义采购和财务 CIDVEN CRS620MI
MMS001 物料。打开 MITMAS MMS200MI
MMS002 物料。连接仓库 MITBAL MMS200MI
MMS003 物料。连接分厂 MITFAC MMS200MI
MMS200 物料。打开工具箱 - MMS200MI
注意

相同的 API 可以具有更新或删除其他程序或表中的记录的交易,而不是表中指定的记录交易,因此需排除在外。

当您直接从 (MMS200) 进入 (MMS001)、(MMS002) 或 (MMS003) 中的详细信息屏幕(例如 E 屏幕),且对 (CMS005) 中的适用程序已启用记录锁定功能,将执行对 (MMS200) 中添加的锁定记录的验证过程。即使 (CMS005) 中不存在 (MMS200),因此无法在其中启用,这也适用。

定义原因代码

必须为每个锁定的记录指定原因代码。原因代码在“原因代码。打开”(CMS432)中定义。它们用作选择标准,并且还用于告知用户为什么锁定记录而不能更改的消息中。

下表显示了预定义的原因代码及其用途:

交易 目的
1=“工作流程” 用于由 ION 中进行中的工作流锁定的记录。
2=“电子签名” 用于由于电子签名待定而锁定的记录。
3=“人工”

当发生异常时,需要您手动锁定记录,而不是自动流程的一部分。

对于此备选项,锁定记录的用户的用户 ID 自动指定为连接到锁定记录的外部引用。

没有针对工作流或电子签名的内置自动化功能,只有关于如何使用原因代码的建议。

无法更改或删除预定义代码,但是可以单击 (CMS432) 中的“语言”在“语言处理。打开”(CRS830)中的备选语言中指定名称和说明。

如果需要更多的备选项,原因代码 700 - 999 可以是用户定义的。

(CMS432) 中 CERECD 表的记录也可以通过 API CMS432MI(原因代码接口)进行管理。

锁定和解锁记录

“已锁定记录。打开”(CMS430)中指定应锁定以防止编辑或删除的记录。具有相同表和键字符串在 (CMS430) 中只能存在一条记录,因此一条记录一次只能锁定一次。

通过从 (CMS430) 中删除已锁定的记录,可以将其解锁,因为随着时间的推移,记录的数量可能会增加。如果您只想暂时解锁记录,则可以将参数“锁定”设置为 0,然后再次更改为 1。相关选项 20=“锁定”和 21=“解锁”可以用于此目的,也可以使用相应的 API 交易来完成。

下表描述了 (CMS430) 中的不同字段及其使用方法:

字段 描述
桌子 该字段表示存储已锁定记录的表的名称。
密钥字符串 该字段表示几个键值对(字段名和值),它们唯一标识特定表中的记录。在 (CMS430) 中,记录的键值会自动转换为 URL 编码格式的键字符串,因为这是创建新的锁定记录时将键值存储在 CELOCK 表中的方式。
原因代码

该字段表示记录被锁定的原因,在创建锁定记录时必须指定该字段。

以下备选项已预定义:

1=“工作流程”

2=“电子签名”

3=“人工”

对于备选项 3,将锁定或解锁 CELOCK 表中记录的人员的用户 ID 自动分配为外部参考 (EXRE)。

有关更多信息,请参阅“定义原因代码”。

外部参考 该字段表示连接到已锁定记录的参考标识。例如:在 Infor ION 中开始的工作流的工作流 ID 或电子签名记录的电子签名号。如果选择了原因代码 3-“人工”,则参考也可以是在 (CMS430) 中锁定或解锁记录的用户的用户 ID。
锁定

该字段表示记录是否已锁定,无法在适用程序中进行编辑或删除。

0 = 已解锁

1 = 已锁定

注意

必须为 (CMS005) 上的记录锁定启用该程序(此记录可在其中编辑),此参数才能生效。

字段 / 名称 该字段表示键字段的名称和描述,并根据指定表的主键显示。

该字段表示连接到指定表中记录的每个键字段的键值。这些值必须对应于指定表中的现有记录,才能在 (CMS430) 中创建记录。

如果适用于该表,则已登录用户的“公司”(CONO) 默认设置为当前公司。

有关如何指定不同类型的值的指南:

  • 如果键中的值是必须以数据库格式 YYYYMMDD 指定的日期。
  • 如果键中的值是小数字段,小数分隔符必须指定为点“.”。

在 (CMS430) 中指定了手动记录锁定。例如,锁定模板记录。

示例 – 锁定模板

您要锁定供应商模板,以防止其在“供应商。打开”(CRS620)中被编辑或删除。

  1. 启动 (CMS430)。
  2. 在列表的字段“表”中浏览 (F4) 并选择表 CIDMAS,因为那是连接到 (CRS620) 的主表。
  3. 选择选项 1=“创建”。
  4. 在 E 屏幕上,在“原因代码”字段中选择 3-“人工”(如果不存在用于模板的特定原因代码)。对于原因代码 3,“外部参考”字段保留为空白,否则可以在该字段中指定您选择的参考。
  5. 选择“锁定”复选框。
  6. 在连接到字段“IDSUNO”的“值”字段中,指定供应商的名称,例如 TEMPSUP-US。
  7. 单击“下一步”保存并锁定记录。

示例 – 解锁模板

您想要解锁已锁定的供应商模板,以便可以对其进行编辑或删除。

  1. 启动 (CMS430)。
  2. 找到要解锁的记录。
  3. 选择选项 4=“删除”,然后单击“下一步”进行确认。如果您只想暂时解锁,并仍将记录保留在 (CMS430) 中,请选择相关选项 21=“解锁”。

通过 API 锁定和解锁记录

锁定记录通常是通过 API 在自动化流程中完成的,例如 ION 中的工作流程。然后必须将步骤添加到工作流中以锁定和解锁记录。已创建 API CMS430MI(记录锁定接口)以管理 CELOCK 表在 (CMS430) 中的记录。

下表显示了 CMS430MI 中可用的交易:

交易 描述
AddRecordLock 添加已锁定的记录
DltMultiRecLock 从表 CELOCK 删除多个记录
DltRecordLock 删除锁定的记录
GetRecordLock 获取已锁定记录的数据
LstRecordLock 列出已锁定记录的数据
SetLock 将记录设置为已锁定
SetUnlock 将记录设置为已解锁
UpdRecordLock 更新已锁定记录的数据
注意

在 API 中,必须在“密钥字符串”字段中将键值指定为 URL 编码格式 UTF-8 的书签键字符串。

具有相同表和键字符串在 CELOCK 表中只能存在一个记录。但是,如果一条记录被解锁 (BLOC = 0),则该记录可以被另一个外部参考和原因代码接管,并使用“AddRecordLock”交易设置为已锁定。

我们建议您定期从清除 CELOCK 表中过时的记录。API 交易“DltMultiRecLock”是基于此目的而创建的。

这些是对交易中某些字段及其使用方法的描述:

  • “至更改日期”是必填项,此日期及之前的记录将删除。
  • 如果未指定“表”,则删除所有表的记录。
  • 如果“禁止编辑时允许删除”留为空白,则仅删除未锁定的记录 (BLOC = 0)。
  • 如果 ADWB 设置为 1,则连锁定的记录 (BLOC = 1) 也会删除。
  • 已删除交易的数量显示为交易的输出。