示例:基于函数和基于表的 BOD 生成过程

该主题说明了设置 BOD 生成触发器的方法。该任务是下面这些更复杂的操作步骤的一部分:

可以通过两种方式触发利用复制类别和复制文档出站对照参考来生成 BOD:

  • 表格:最简单的方法是在复制文档出站对照参考表单中指定用于 BOD 的表或视图,然后将表格名称添加到复制类别中。对该表格中的记录进行任何更改都会触发 BOD 生成。

    如果不希望在该表格中的任何内容发生变化时都生成 BOD,您可以使用复制类别表单上的字段来限制 BOD 生成:

    • 使用筛选器属性定义一个筛选器,以决定对表单进行的更改是否必须触发 BOD 生成。只包括与筛选器匹配的记录。
    • 使用以下复选框以基于表格更改类型来限制的 BOD 生成:跳过插入跳过更新跳过删除
  • 函数:这种技术应在简单的基于表格更新的触发器不足以满足需要时使用。例如,假设您想在创建新的订单时触发一个 BOD。订单是层级结构数据,可以有任意数量的行和下达,因此无法标识会触发 BOD 生成操作的单个表格,也没有办法知道何时插入了最后一个行或下达。您也可能需要在发生某个与表格更新完全无关的应用程序事件时触发 BOD 生成操作。该解决方案会通过编程方式使用“函数”触发器触发 BOD 更新。

    复制类别表单和复制文档出站对照参考表单中,您可以指定“函数”名称。该名称不需要对应于实际的存储过程,而且很可能事实上也是如此。实际上只会将一个参数传递到一个复制存储过程中,该参数会最终触发 BOD 生成。(有关此操作工作方式的详细信息,请参见后台任务:系统如何生成 BOD。)

    您也可以从触发器、其他 SP 或 IDO 扩展分类中(如果需要,还可以从其他上下文中)调用这个存储过程。

如果计划为不同的目标站点生成不同的 XML 文档,您可以在复制文档对照参考记录中包含相应目标站点的内联网名称

函数触发器设置示例

您希望每当某个系统操作调用“函数”TriggerSalesOrderSyncSp 时都生成一个 BOD。

复制文档出站对照参考表单中,指定以下触发器信息:

  • 应用于 IDOSP!
  • 应用于 IDO 操作调用
  • 应用于方法TriggerSalesOrderSyncSp

复制类别表单中,指定以下触发器信息:

  • 表或函数TriggerSalesOrderSyncSp
  • 对象类型SP
  • 筛选器:将该字段留空。

按照上面列出的过程主题中指定的方式,定义其余的 BOD 和复制设置。

表触发器设置示例

您希望根据您在复制类别表单中指定的筛选器和复选框,在 employee_mst 表上的员工视图发生变化时触发 BOD。

复制文档出站对照参考表单中,指定以下触发器信息:

  • 应用于 IDOTABLE!employee
  • 应用于 IDO 操作UpdateCollection
  • 应用于方法:不适用

复制类别表单中,指定以下触发器信息:

  • 表或函数员工
  • 对象类型
  • 筛选器:指定任何适用的筛选器。

根据需要设置其余的列。

注意: 对于表触发器,必须选择跳过删除复选框。否则,BOD 将在删除时创建一个空值。

按照上面列出的过程主题中指定的方式,定义其余的 BOD 和复制设置。如果使用 UpdateCollection(列名称)中的非主键字段作为属性,则必须在复制规则表单中设置更新所有列复选框。为表单添加复制规则时,必须重新生成复制触发器。