首页 > 解决方案 > 通过 ABAP 获取要保存的仓位

问题描述

我正在尝试检查通过事务vl02n更改的交货中的位置是否在保存文档之前满足某些特定条件。

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

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

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

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

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

标签: abap

解决方案


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

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

推荐阅读