我正在检查接口IF_EX_IDOC_CREATION_CHECK
的实现,该接口有一个带有3个参数的方法IDOC_DATA_CHECK
:
- IDOC_CONTROL类型EDIDC
- IDOC_DATA类型EDIDD_TT
- CREATE_IDOC类型C
我的问题是,我在互联网上找不到与这个界面相关的文档,也找不到例子。我想知道参数IDOC_DATA
在被调用时的具体值是多少?它是一次处理一种材料的IDocs,还是携带所有材料的所有IDocs?
让我头疼的代码是
loop at idoc_data assigning <it_data>.
case <it_data>-segnam.
when 'E1BPE1MATHEAD'. " Segment
clear: it_mat,zliser.
it_mathead = <it_data>-sdata.
...
if sy-subrc eq 0. " -------> This
exit. " -------> is my
endif. " -------> headache
...
当涉及到exit.
语句时,它在不处理下一个IDocs的情况下退出循环,但我不知道它是停止检查所有材料的所有下一个ID ocs,还是用另一材料的下一组IDocs再次调用方法IF_EX_IDOC_CREATION_CHECK~IDOC_DATA_CHECK
。
不幸的是,我无法使用示例数据运行此接口,因为它直接更改其他系统的数据,所以我只能读取代码。
因此,如果有人在这个问题上有经验或参考,我将感谢你的帮助。
提前谢谢。
exit语句将导致程序退出循环,如果循环是方法中唯一的处理块,它也将退出方法。
但是,应该为每个IDOC再次调用BADI/方法。
难道你没有一个开发或QA环境,在那里你可以测试这一点来确定吗?