FTPC审计是为了记录系统中所有变更,以便对历史版本的审查而制定的功能。
FTPC审计实现原理是通过Oracle触发器实现,对于FTPC启用了审计的对象,系统根据对象的表创建一个对应的Oracle触发器,当更新或删除对象时,触发器会将历史版本数据存入对应的审计表中。
一、FTPC审计表
FTPC中启用对象版本时,生产数据库中有一组审计表,用于存储对象更改后的旧版本。这些审计表的名称如下:
-
<tableName> 的审计表名为<tableName>_A.
-
DC_<objectName> 的审计表名为 DA_<objectName>.
-
UDA_<objectType> 的审计表名为UDA_<objectType>_A.
-
AT_<applicationTableName> 的审计表名为 AA_<applicationTableName>.
二、FTPC审计配置
可以在FTPC Administrator中配置FTPC的审计等级。审计等级有以下几个选项:
-
None: 审计表不记录任何对象版本信息。
-
Forms, Subroutines, and Event Sheets: 对象forms, subroutines, event sheets每次通过Process Designer 检入修改,审计表记录对象版本信息。
-
All Process Designer Objects: 任何Process Designer对象检入修改时,审计表记录对象版本信息。
-
All Objects: 当对任何应用程序可访问的对象及其命名的UDAs进行更改时,审计表记录对象版本信息。这包括所有运行时对象,如运行时数据收集。
三、启用/禁用特定表的审计
当审计级别设置为除None之外的任何级别时,可以启用和禁用对单个表的审计。例如,如果审计级别设置为Forms, Subroutines, and Event Sheets,则可以禁用Subroutines表上的审计。如果审计级别设置为All Objects,则可以通过禁用对特定对象的各个表的审计来禁用对这些对象的审计。
注意:UDA表的审计由主表控制。例如,如果sublots 是禁用审计(即SUBLOT 表),那么在UDA_Sublot表也将禁用审计。
启用/禁用审计:
1、在FactoryTalk ProductionCentre Administrator中设置审计等级,但审计等级不能设置为None。
2、在XFR_AUDIT_OVERRIDE 表,添加不希望审计的表,禁止审计的条目。例如,如果您想禁用对SUBLOT表的审计,在XFR_AUDIT_OVERRIDE表中输入以下内容:
-
object_name: SUBLOT(表名)
-
object_type: Table (该值只能为Table)
-
audit_type: 0(审计类型)
以下审计类型是可用的,符合FactoryTalk ProductionCentre Administrator管理员的审核级别:
-
0: None
-
1: Forms, Subroutines, and Event Sheets
-
2: All Process Designer Objects
-
3: All Objects
3、添加当前审计等级未审计的表条目。例如,配置的审计级别是Forms, Subroutines, and Event Sheets,但是您希望审计一个特定的AT表(AT_Example)。在XFR_AUDIT_OVERRIDE表中输入以下内容:
-
object_name: AT_Example
-
object_type: Table
-
audit_type: 1
对于AT定义表,输入AT_<name>作为对象类型。对于数据收集表,输入DC_<name>作为对象类型。<name>与Process Designer中创建的名称一致。
4、在将所有条目创建到XFR_AUDIT_OVERRIDE表之后,对所选的数据库运行dsresetaudittrigger存储过程来重置审计触发器。
Microsoft SQL Server数据库,请运行以下命令:
exec dsResetAuditTriggers
go
Oracle数据库,请运行以下命令:
declare
begin
dsResetAuditTriggers();
end;
/
5、重启应用服务器