1

我正在检查接口的实现,IF_EX_IDOC_CREATION_CHECK它有一个IDOC_DATA_CHECK带有 3 个参数的方法:

  1. IDOC_CONTROL 类型 EDIDC
  2. IDOC_DATA 类型 EDIDD_TT
  3. CREATE_IDOC 类型 C

我的问题是我在互联网上找不到与此接口相关的文档,也找不到示例。我想具体知道IDOC_DATA调用时参数有什么值?它是一次处理一种材料的 IDoc,还是携带所有材料的所有 IDoc?

让我头疼的代码是

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.语句时,它会在不处理下一个 IDoc 的情况下退出循环,但我不知道它是否停止检查所有材料的所有下一个 IDoc,或者IF_EX_IDOC_CREATION_CHECK~IDOC_DATA_CHECK使用下一组另一种材料的 IDoc 再次调用该方法.

不幸的是我不能用示例数据运行这个接口,因为它直接改变了其他系统的数据,所以我只能阅读代码。

因此,如果有人在此问题上有经验或参考,我将不胜感激。

提前致谢。

4

1 回答 1

1

exit 语句会导致程序退出循环,如果循环是方法中唯一的处理块,它也会退出方法。

但是,应该为每个 IDOC 再次调用 BADI/方法。

您是否没有开发或 QA 环境,您可以在其中进行测试以确定?

于 2012-02-25T08:18:25.327 回答