ABAPがSETUPDATE TASKLOCALを必要とする理由

また、標準のBAPIを呼び出した後、COMMIT WORK ANDWAITステートメントがすべてのV1更新モジュールの実行を待機しない場合の対処方法。



アップデータの同期の問題



SAP R / 3システムは、更新モジュールを使用して、マスターデータに関連付けられた追加データをトランザクションで格納します。これについて詳しくは、たとえば、こちらをご覧ください



データの一貫性を保つために、保存後、タイプV1のモジュールの実行を待つ必要があります。一般に、これはCOMMIT WORK ANDWAITコマンドを実行することによって実現されます。

一部の標準BAPI汎用モジュールは、テキストでCOMMITWORK呼び出しますこのようなFMを実行した後は、簡単なコマンドで保存プロセスが完了したことを確認できなくなります。この問題を解決するために、一部のプログラマーはVBテーブルにいくつかの複雑なクエリを書き込むか、不当なn秒間待機します。すべてがはるかに簡単です。



SET UPDATE TASKLOCALが救いの手を差し伸べます



つまり、V1更新モジュールのローカル実行モードを起動します。このモードは、オペレーターが呼び出された瞬間からLUWの現在のDBが終了する瞬間まで、登録されたV1更新モジュールに対してアクティブ化されます。この場合、V1モジュールは次のとおりです。



  • VB更新テーブルではなく、ABAPメモリに保存されます。
  • 並行してではなく、現在のプロセスで実行されます。
  • COMMITWORKステートメントによって同期されます。


つまり、COMMIT WORKを呼び出すと、プログラムはローカルに登録されたV1更新モジュールが実行されるまで待機します。違いを図に示し







ます。TotalSETUPDATETASKLOCALは、COMMIT WORKステートメントを制御できず、プロセスが完了するまですべてのV1モジュールを待機する場合に役立ちます。



All Articles