1

3 つのパラメーターIF_EX_IDOC_CREATION_CHECKを持つメソッドを持つインターフェイスの実装を確認しています。IDOC_DATA_CHECK

  1. IDOC_CONTROL タイプ EDIDC
  2. IDOC_DATA タイプ EDIDD_TT
  3. CREATE_IDOC タイプ C

そして私の問題は、このインターフェースや例に関連するドキュメントがインターネットで見つからないことです。IDOC_DATAが呼び出されたときにパラメーターが持つ値を具体的に知りたいですか? 一度に 1 つの品目から 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
...

ステートメントになると、次の IDoc を処理せずにループを抜けますが、すべての品目の次の IDoc のすべてのチェックを停止するか、別の品目の次の IDoc のセットでメソッドが再度呼び出されるexit.かは正確にはわかりません。IF_EX_IDOC_CREATION_CHECK~IDOC_DATA_CHECK.

残念ながら、このインターフェイスは他のシステムのデータを直接変更するため、サンプル データを使用して実行することはできません。そのため、コードを読み取ることができます。

ですから、この問題で経験や参考になった人がいれば、助けていただければ幸いです。

前もって感謝します。

4

1 に答える 1

1

exitステートメントを使用すると、プログラムはループから終了します。ループがメソッド内の唯一の処理ブロックである場合は、メソッドも終了します。

ただし、IDOCごとにBADI/メソッドを再度呼び出す必要があります。

念のためにこれをテストできる開発環境またはQA環境がありませんか?

于 2012-02-25T08:18:25.327 に答える