您可以使用许多不同的机制来在 SAP
应用程序中检测事件。事件检测机制应该能够调用功能模块。连接器已经实现的四种事件检测机制为:
- 代码增强 - 它是为业务流程实现的(通常是单个 SAP 事务),方法是在 SAP
事务内的适当位置插入事件检测代码
- 批处理程序 - 涉及开发一个包含检测事件的条件的 ABAP 程序
- 业务工作流 - 使用 SAP 本身的面向对象的事件检测功能
- 更改指针 -
实现更改指针机制,它是业务工作流的变化形式,使用更改文档的概念来检测业务流程的更改
因为某些机制可能不可用于特定业务流程,所以您确定要为开发的每个业务对象实现的适当事件检测机制很重要。对于您想要实现事件检测的每个事务,您必须对特定业务流程的技术和功能方面有所了解。
当确定要为业务流程实现哪种事件检测机制时,查看以下实现注意事项。
- 可用性
- 哪些事件检测机制可用于此业务流程?这应该是您要考虑的一个首要问题。代码增强和批处理程序具有高可用性,而业务工作流和更改指针不具有高可用性。
- 实时集成
- 需要同步检测事件吗?您需要同时检测大量事件吗?除了批处理程序之外的所有机制都适合于实时集成。
- 可靠性
- 当生成事件时,是否检测到此业务流程的所有数据更改?“代码增强”、“批处理程序”和“更改指针”对捕获对象的所有事件提供了最佳控制。业务工作流提供有限的可靠性。例如,在供应商事务更新期间,业务工作流不会检测地址更改。
- 灵活性
- 在触发事件之前,需要评估某个条件吗?需要在事务的某一时刻检测事件吗?因为您可以在提交事件数据之前在特定位置插入代码,所以代码增强最灵活。“更改指针”和“批处理程序”具有适度的灵活性,而“业务工作流”在其实现中具有非常小的灵活性。
- 升级相关性
- 升级 SAP
应用程序会更改此业务流程检测事件的方式吗?通常,这是未知的,但是业务工作流和更改指针受应用程序更改的影响最大,因为它们在
SAP 的控制之下。
- 困难
- 问题是时间还是难度?每种机制都有各自不同的实现难度。通常,批处理程序最容易实现。代码增强和业务工作流要适当难一些,而更改指针是最难的,这是因为它要求更加精通
SAP 的知识和评估的业务流程。
- 将来的事件
- 您需要能够实时捕获事件然后将它的检索延迟到指定的日期吗?例如,今天利用从今天起三周有效的地址更改来更新某一职员记录。在此例中,您可能想捕获更新时的事件,但是将它的检索延迟到生效日。
此时,您应该对需要考虑的事件检测机制有所了解。在确定哪种机制可以用于您需要支持的每个业务流程时,使用表 49 作为一般准则。
表 49. 事件检测机制判定表
| 代码增强
| 批处理程序
| 业务工作流
| 更改指针
|
可用性
| 高
| 高
| 低
| 低
|
实时集成
| 是
| 否
| 是
| 是
|
可靠性
| 高
| 高
| 低
| 中
|
灵活性
| 高
| 中
| 低
| 中
|
升级相关性
| 低
| 低
| 中
| 中
|
困难
| 中
| 低
| 中
| 高
|
将来的事件
| 是
| 是
| 否
| 否
|
要注意的最后一个注意事项是站点的开发方法。也许仅使用业务工作流的事件检测是首选方法,而代码增强根本不能使用。
建议将代码增强用于事件检测,因为它可靠、灵活性大、同步且具有高可用性。与之比较而言,业务工作流和更改指针机制通常并非可用于所有业务流程。当不希望进行实时集成时,通常使用批处理程序。
对于在业务流程中检测事件,每种事件检测机制都具有优点和缺点。以下各节给出了关于每种事件检测机制的更多详细信息,包括每种机制的主要优点和缺点。
所有事件检测机制都支持事件的实时触发和检索。但是,只有代码增强和批处理程序才提供了延迟检索的附加功能。被指定为在稍后日期进行检索的事件称为将来的事件。
代码增强是在 SAP
事务的代码中的特定位置实现的。通过利用用户出口,您可以将事件检测代码插入事务中最合理的位置。事件检测代码允许对条件进行评估来确定是否生成事件。
此机制的一般策略是在事务的数据即将提交至数据库时插入事件检测代码。
- 可以访问事件检测进程的 SAP 事务信息
- 允许在事务的适当位置插入事件检测代码
- 提供同步事件检测
- 限制了对 SAP 功能的依赖性,因此维护和增强更容易
- 支持将来的事件
- 用户出口可能不会总是在事务的适当位置
- 可能需要 SAP 修改功能部件
当需要触发大量相同类型的事件(例如,客户订单)或业务流程需要大量处理时间时,批处理程序很有用。此机制不要求对
SAP 交付的代码进行任何修改;但是,您需要使用(编写)评估检测事件的条件的 ABAP
程序。
- 可以对大多数业务流程实现
- 准确地检测事件
- 容易实现
- 如果运行时资源存在问题的话,可以安排在特定的时间运行
- 支持将来的事件
- 它不提供同步事件检测
- 未提供 SAP 事务信息
- 状态(“创建”、“更新”或“删除”)或状态更改检测不到或可能不容易检测
- 如果创建后台作业来使批处理程序自动执行,则需要维护和监视额外的任务
业务工作流是 SAP
应用程序中跨应用程序的工具,它使您能够将应用程序之间的业务任务整合在一起。此工具补充
SAP 应用程序的现有业务功能。可以使用业务工作流来调整 SAP
的标准功能,以满足所需业务功能的特定要求。业务工作流使用“业务对象资源库”(BOR),该资源库存储应用程序中每个
SAP 对象的定义。
- 提供同步事件检测
- 利用 SAP 的面向对象的业务对象能力来将事件检测链接至 ABAP 功能模块
- 容易实现
- 对于每个业务流程,SAP 对象在 SAP BOR 中都不存在
- 对于 SAP 对象,SAP 事件(例如,“已创建”或“已删除”)可能不存在
- 它可能并不会检测业务流程中的所有更改
- 它不会总是在适当的时间提供检测事件的灵活性
- 它依赖于 SAP 提供的功能,这在 SAP 的各个版本之间可能有所不同
更改指针是使用更改文档来检测事件的业务工作流的相关功能。为某些业务流程创建了更改文档,以便捕获对该业务流程的所有更改。
- 提供同步事件检测
- 只需要对适配器功能模块的一个 SAP 修改就可以处理所有业务流程
- 通常可用于“物流”模块
- 可以访问事件检测进程的 SAP 更改指针信息
- 如果已将更改文档用于业务流程,则它只需要最少工作量就可以检测事件
- 虽然它稍微有点灵活,但是不能更改事件检测布局,这是因为它是由 SAP 完成的
- 它需要完全了解更改文档和业务工作流环境
- 必须进行 SAP 修改才能打开 SAP 数据元素的更改文档标志
- SAP 中的更改指针信息对于事件检测进程可能不足够
