[訂正] SAPは、外部プログラムのメソッドを呼び出します

手順でSAPでは2通りの方法で外部プログラムを呼び出します。
 
1.呼び出しトランザクション<TCODE>
BDCは、プログラムでは一般的です。
  CALL TRANSACTIONのTCODE
        bdcdata使用した
        MODEのp_mode
        UPDATEのc_updateの
        messtabにメッセージを。
モードは、次のオプションの値を持っています。

実行

モード  

効果

"A"

すべての入力画面画面はbdc_tabで機能コードが含まれている場合は、小さなウィンドウが機能コードが表示されますが表示されます。ない規定値以下、A.と考えられている場合は、デフォルトで

"E"

エラーが発生したときに表示画面のみ、ユーザは、修正されたプログラムは、処理を続行することができ、データを修正することができます。

"N"

サイレント・モードでは、画面が表示されません。あなたはブレークポイントは、トランザクションと呼ばれ達した場合、システムの処理が終了し、いくつかのシステムのフィールドを設定されています。SY-SUBRC  1001に、SY-msgty  "S"として、SY-MSGIDが  "00"であり、SY-MSGNO  "344"として、SY-MSGV1  "SAPMSSY3"としてSY-msgv2  "0131."として

"P"

デバッグモード画面が表示されません。あなたはブレークポイントは、トランザクションと呼ばれ達した場合、システムが自動的にABAPデバッガに行きますが、このアプローチは、主にデバッグ処理のために使用されています。

アップデートは、次のオプションの値があります。

更新モード

効果

"A"

非同期更新。声明に従って実装更新と呼ばれるプログラムは、仕事とWAITと指定されていない追加的な方法をCOMMIT。メインプログラムがデータを提出していきますと、データは、他の特別な更新プロセスによって実行される更新キュー、に更新されていることに関係なく、実行が完了したか否かの更新提出しました。このアプローチは、マスタデータなどのメンテナンスなどのデータを指定する更新トランザクションコードの多数を使用することがより好適です。

"S"

シンクロナイズド。仕事とWAIT文と、追加の方法をCOMMIT指定に従い、呼ばれるプログラムの実行を更新しました。つまり、データは、専用の更新プロセスで実行される更新キュー、に更新されているが、主なプログラムは、データが完全に提出されるまで待ってから実行を継続する前に結果情報を返します。この実施形態は、異なるトランザクションコードの複数の比較的高い、連続した処理であるデータの整合性の要件に適しています。

"L"

ローカル更新。SET UPDATE TASK LOCAL文の実装の方法で実行されるプログラムと呼ば更新しました。メインプログラムが配置されている中で言い換えれば、データ更新処理は、トランザクションが実行を継続する前に完了するまで、メインプログラムが待機しなければならないと呼ばれ、完成されています。

 
<プログラム>とリターンを提出2.
コールプログラム:
REPORT ZTEST_CALL_PROG。
データ:w_data OF BEGIN、
  FID1 TYPE文字列、
  私は、入力しNUM1
  私は、入力しNUM2
w_data OF END。
データ:T_OUT LIKE W_DATAは0 WITH HEADER LINEを発生します。
10回行います。
  SY-指数<4の場合。
    T_OUT-FID1 = 'A'。
    T_OUT-NUM1 = SY-インデックス。
    T_OUT-NUM2 = SY-指数+ 1。
  彼のインデックス<7 ELSEIF。
    T_OUT-FID1 = 'B'。
    T_OUT-NUM1 = SY-指数+ 1。
    T_OUT-NUM2 = SY-指数+ 2。
  そうしないと。
    T_OUT-FID1 = 'C'。
    T_OUT-NUM1 = SY-インデックス。
    T_OUT-NUM2 = SY-指数 - 1。
  ENDIF。
  T_OUT追加します。
  ENDDO.
  「T_OUT」内への輸出T_OUT。「メモリのメモリID番号の表のT_OUTは、こちらから取得した 『T_OUT』、プログラムが呼び出されたデータです。
  zwrite_dateとRETURNを提出する。「ここであなたもzwrite_dataとWITH s_aufnr = p_aufnrを提出し使用することができます
                                     「s_mode WITH =「N値は、呼び出されたプロシージャに渡されます。
  書き込み:/ 'ジャスティン。
 
 
プログラムは、発信者からのABAPメモリ記憶装置において処理すべきデータを取得するために、呼び出されます。
REPORT ZWRITE_DATE。
データ:w_data OF BEGIN、
  FID1文字列型、
  私は、入力しNUM1
  私は、入力しNUM2
 w_data OF END。
 データ:LIKEのw_data T_OUT 0 WITH HEADER LINEを発生します。
 メモリID 'T_OUT' からインポートT_OUT。
 FREE MEMORY ID 'T_OUTは、'。「クリアMEMORY IDは「T_OUTのコンテンツです。
 T_OUTのループ。
   書き込み:/ ''、T_OUT-FID1、T_OUT-NUM1、T_OUT-NUM2。
 ENDLOOP。
 書き込み:SY-ULINE。
 
 
その他の例:
   l_lgortの輸出rm16_lgort

          p_plwrkのFROM rm16_werks
          p_matnr TO MEMORY ID 'ZPHRRM13'からrm16_matnr。
  zphrrm13提出し、RETURN。
  MEMORY ID 'ZPHRRM13' FROM IMPORT mdezx mdpsx mdkp mdsta mdstal

 

 
リリース2018元の記事 ウォンの賞賛3957 ビュー1035万+

おすすめ

転載: blog.csdn.net/zhongguomao/article/details/46827099