abap - 在外向交货处理时捕获过帐发货事件
问题描述
我正在使用用户出口USEREXIT_SAVE_DOCUMENT_PREPARE来检查交付中的某些位置是否符合某些特定标准。
我只想在触发 PGI时执行此操作。为此,我在用户出口中使用此条件:
IF ( sy-tcode EQ 'VL01N' OR
sy-tcode EQ 'VL02N' ) AND
sy-ucomm EQ 'WABU_T'.
但是现在恐怕这对于以下情况还不够:
- 直接从 vl02n 预订出口(不检查位置)
- 通过“编辑->发布好问题”预订出口
- 编辑职位和书籍
是否有其他选项可以检查以确保有预订?
我如何才能完全确定是否确实触发了商品发布?
解决方案
您可以尝试利用 Workflow 来涵盖所有可能的情况。
创建将在交付创建/更改时触发的工作流事件,并在那里检查发布货物问题。交付 BO 是 LIKP,所以转到 tcode SWU_EWCD 并输入这样的数据
工作流事件基于更改文档,因此每次将 smth 写入表时都会被触发。检查您的事件是否在 SWEC 事务中正确创建。
您还可以根据NACE 条件创建事件。之后,使用您的事件生成您自己的工作流程。
您也可能对 BAdI LE_SHP_DELIVERY_PROC感兴趣,它具有 SAVE_AND_PUBLISH_BEFORE_OUTPUT 方法,该方法在保存交付之前执行。