我想在发布采购订单后触发 IDoc 或 Web 服务。最好的方法是什么?通过输出确定(在这种情况下会是什么条件?)或通过 BADI 或用户退出?
此致敬意
对于此类请求,我建议使用SAP Business Workflow。在您的情况下,SAP 标准将在业务对象存储库 (BOR) 中触发业务对象BUS2012
(采购订单)的事件Released
。使用事务SWETYPV
,您可以将使用者附加到此事件。将自动调用使用者(当然,如果工作流在您的系统中处于活动状态)。使用者可以是工作流、函数模块或 ABAP OO 类的方法。
与其他可能的解决方案相比,优势:
- 耦合本身是纯定制,无需在采购订单处理中添加ABAP代码。
- 耦合是松散的(通过事件),减少了依赖性。
- 联轴器可以通过工作流程定制动态激活和停用。
- 有一些监视工具来跟踪触发的事件及其事件处理程序的执行(例如事务
SWEL
)。 - SAP业务工作流是经典且久经考验的技术。
您可以尝试M06E0005用户退出。它用于在发布工作流事件期间更改发布角色确定,并可用于运行自定义代码。