简体   繁体   English

IDOC_CREATION_CHECK 参数填充?

[英]IDOC_CREATION_CHECK parameters filling?

I'm checking an implementation of the interface IF_EX_IDOC_CREATION_CHECK which has a method IDOC_DATA_CHECK with 3 parameters:我正在检查接口IF_EX_IDOC_CREATION_CHECK的实现,它有一个IDOC_DATA_CHECK方法,带有 3 个参数:

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

And my problem is that I can't find documentation in internet related to this interface nor examples.我的问题是我在互联网上找不到与此接口或示例相关的文档。 I want to know specifically what value does the parameter IDOC_DATA have when is called?我想具体知道参数IDOC_DATA在被调用时有什么值? Does it process IDocs from one material at a time or it carries all the IDocs of all the materials?它是一次处理一种材料的 IDoc,还是携带所有材料的所有 IDoc?

The code that is breaking my head is让我头疼的代码是

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
...

When it comes to the exit.exit. statement it goes out the loop without processing the next IDocs but I don't know exactly if it stops checking all the next IDocs of all the materials or the method IF_EX_IDOC_CREATION_CHECK~IDOC_DATA_CHECK is called again with the next set of IDocs of another material.语句它退出循环而不处理下一个 IDoc,但我不知道它是否停止检查所有材料的所有下一个 IDoc,或者使用另一种材料的下一组 IDoc 再次调用方法IF_EX_IDOC_CREATION_CHECK~IDOC_DATA_CHECK

Unfortunately I can't run this interface with sample data because it directly changes data of other systems, so I just can read the code.不幸的是,我无法使用示例数据运行此接口,因为它直接更改其他系统的数据,因此我只能阅读代码。

So if anyone has experience or reference in this issue I'd appreciate your help.因此,如果有人在此问题上有经验或参考,我将不胜感激。

Thanks in advance.提前致谢。

The exit statement will cause the program to exit out of the loop, if the loop is the only processing block in the method, it will also exit the method. exit 语句会导致程序退出循环,如果循环是方法中唯一的处理块,它也会退出该方法。

However, the BADI/method should be called again for each IDOC.但是,应该为每个 IDOC 再次调用 BADI/方法。

Don't you have a development or QA environment where you could test this just to be sure?难道您没有开发或 QA 环境,您可以对其进行测试以确定吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM