Oracle E-Business Suite 中启动器活动的先决条件
此部分包含配置 Oracle E-Business Suite 入站活动的先决条件。
您必须在 Oracle 数据库中创建作为使用启动器活动的先决条件的事件存储器和触发器。
事件存储器是保存事件直至轮询连接器可以处理这些事件的表,这些事件反映数据的变化。连接器使用事件存储器来跟踪事件实体。每次创建、更新或删除数据库记录时,连接器都更新事件存储器中事件的状态。可以在“获取已创建”、“获取已删除”和“获取已更新”活动的“配置”面板中找到“事件存储器名称”字段。
可以根据需要对用户表设置触发器以填充事件存储器。对于 Oracle 数据库,对用户表设置触发器以便对用户表的更改可自动生成将存储在事件存储器中的事件。
在 Oracle E-Business Suite 中创建事件存储器和触发器
要在 Oracle 数据库中创建“事件存储器”和“触发器”,请执行以下过程:
- 创建新表。例如,如果将事件存储器名称配置为 IBM_CI_EVENTS,那么使用 <STUDIO ROOT>/etc/oracleebs/scripts/IBM_CI_EVENTS.SQL 中的脚本。事件表的结构如下所述:注: 建议创建单独的事件表并将其用于每个配置的表/视图。
表 1. 事件表结构 列名 类型 描述 event_id Number 唯一事件标识,它是表的主键。它可以具有与 object_key 相同的值。 object_key 字符串 包含检索的记录的主键的字符串。 此列不能为 null。
object_name 字符串 每个业务对象都指的是表或视图。将使用模式名称和表名称构造业务对象的名称。 此列不能为 null。
object_function 字符串 操作对应于事件(删除、创建和更新)。 此列不能为 null
。event_priority Number 标识事件优先级。此值必须为正整数。 此列不能为 null。
event_time 时间戳记 生成事件的日期和时间。格式为 mm/dd/yyyy hh:mm:ss。 event_status 事件状态一开始设置为新事件的值,并且由适配器在处理事件时更新。状态可以具有下列其中一个值: - 0:标识新事件。
- 1:标识已传递至导出的事件。
- -1:表示处理事件时发生错误。
此列不能为 null。
event_comment 与事件相关联的任何注释。 event_message
这是可选的。此字段可以为空。 xid 这是可选的。此字段可以为空。 connector_ID 接收特定事件的连接器实例的唯一标识。 - 要针对表创建触发器,请参阅样本 <STUDIO ROOT>/etc/oracleebs/scripts/sample_trigger.sql。触发器用于在创建、更新或删除行时填充事件存储器。
以下是名为 event_create 的插入触发器的样本,其在向选中的表添加行时填充事件存储器 IBM_CI_EVENTS。
create or replace
TRIGGER SCOTT.event_create
after insert on SCOTT.CUSTOMER for each row
begin
insert into "SCOTT"."IBM_CI_EVENTS"
(
event_id
, object_key
,object_name
,object_function
,event_priority
,event_status
)
values
(
event_sequence.nextval
,:new.PKEY
,'ScottCustomer'
,'Create'
,0
,0
);
end;
列名 | 值 |
---|---|
event_id | 对于唯一 event_id,将使用名为 event_sequence 的序列。或者,您可以针对插入的每个行提供唯一事件标识。 |
object_key | 这包含记录的主键。 |
object_name | 使用模式名称和表名称构造的对象名称。例如,如果在 Scott 模式中提供表 CUSTOMER,那么此属性的值将为 ScottCustomer。 |
object_function | 根据是插入/更新/删除触发器,object_function 值分别为 Create/Update/Delete。 |
event_priority | event_priority 的值必须为 0 或正整数。 |
event_status | event_status 的值必须为 0,从而视为新事件。 |