在外向交货处理时捕获过帐发货事件

时间:2018-11-13 10:52:49

标签: sap exit abap erp

我正在使用用户出口 USEREXIT_SAVE_DOCUMENT_PREPARE 来检查交货中的某些特定条件。

我只想在触发发货问题(即过帐好发货)时执行此操作。为此,我在用户出口中使用以下条件:

IF ( sy-tcode EQ 'VL01N'    OR
     sy-tcode EQ 'VL02N' )  AND
     sy-ucomm EQ 'WABU_T'.

但现在恐怕这对于以下情况是不够的:

  • 直接从vl02n预订出口(无需检查位置)
  • 通过“编辑->发布好问题”预订出口
  • 编辑职位和预定

是否可以检查其他选项以确保有预订?

我如何才能完全确定实际上触发了货物过帐?

2 个答案:

答案 0 :(得分:0)

您必须检查T180-TRTYP中的值。如果值为“ H”,则为创建预订,否则为更改预订。最好删除交易代码和sy-ucomm条件以及T180-TRTYP的条件。

致谢, 乌玛尔·阿卜杜拉

答案 1 :(得分:0)

您可以尝试利用工作流来涵盖所有可能的情况。

创建工作流程事件,该事件将在交货创建/更改时触发,并在那里检查过帐发货。交货BO为LIKP,因此请对tSWU_EWCD进行tcode并输入类似的数据

enter image description here

工作流事件基于更改文档,因此每次将smth写入表时都会触发该事件。检查您的事件是否在SWEC事务中正确创建。

您还可以基于NACE conditions创建事件。之后,使用您的事件来生成自己的工作流程。

还有BAdI LE_SHP_DELIVERY_PROC 您可能会感兴趣,它具有方法 SAVE_AND_PUBLISH_BEFORE_OUTPUT在保存交货之前执行。