获取已更新行(入站)和更新行(出站)活动可在运行时期间存储指定列的新值和原始值。例如,获取已更新行活动可能会配置为同时存储 Name 列的原始值和 Name 列的新值。图 1 显示当更新触发器事件发生后由 Integration Appliance 来处理获取已更新行活动时示例数据的传输:
在“针对更新的旧值列”对话框中,选择要存储原始值的列。通过针对获取已更新行和更新行活动单击核对表的选取表任务中的旧值,“针对更新的旧值列”对话框可用。缺省情况下,用于存储原始值的列的名称是使用以下字符串作为前缀的原始列名称:old_。 例如,如果原始列名称为 FirstName,那么缺省情况下,用于存储更新操作的原始值的列称为 old_FirstName。此缺省名称可以更改。
对于某些项目,还可以存储主键的原始值。例如,如果应用程序在更新操作期间实际更改主键值,如图 2 中所示。
示例编排旨在使 myInput 数据库表与 myOutput 数据库表保持同步。示例编排包含获取已更新行活动(轮询 myInput 表中的更新事件)和更新行活动(更新 myOutput 表)。
在运行时期间,会对 myInput 数据库表执行更新操作,以更改“名称”列的值和该行的主键值。此更新操作在集成项目外进行。要让编排同步 myInput 数据库表和 myOutput 数据库表,需要访问原始主键以确定 myOutput 数据库表中要使用新主键和新“名称”值进行更新的行。
按图 3 中所示更新 myOutput 数据库表时,可以通过获取已更新行活动将旧主键保存到变量,以供更新行活动稍后使用。