通过 ABAP 获取要在交付中保存的位置

get positions to be saved in delivery via ABAP

我正在尝试检查通过交易 vl02n 更改的交付中的头寸是否在保存文档之前满足某些特定条件。

对于此操作,我想使用用户出口 USEREXIT_SAVE_DOCUMENT_PREPARE.

在调试器中,我检查了哪些 tables 和变量是可访问的,发现有一个全局 table XLIPS 包含所有位置在当前要保存的交付中可见。

问题是在XLIPS 中还有一些位置已经在vl02n 的GUI 中被删除了。 因为我只想检查确实会保存的位置,所以我不想使用 table XLIPS。

我该如何解决这个问题,是否有比使用 XLIPS 更好的方法?

非常感谢您的帮助,请原谅我的英语不好。

XLIPS包含所有发货项目保存后的变化信息。因此,如果您删除一行,XLIPS 仍将保留删除的行,字段 XLIPS-UPDKZ 设置为 D - 表示该行已被删除(或 I 插入或 U 已更新)。考虑到这一点,您应该能够相应地对相关项目进行检查:

LOOP AT xlips ... WHERE updkz NE 'D'.
    <your code here>
ENDLOOP.