BADi 内で 'X' に等しい場合、'WAIT' パラメータで 'BAPI_TRANSACTION_COMMIT' を使用すると、どのような影響がありますか? LUW がコミットするときに SAP がデータをコミットすることを期待する必要がありますか?
パラメータ「WAIT」=「X」を指定すると、「BAPI_TRANSACTION_COMMIT」内で「COMMIT WORK」または「COMMIT WORK AND WAIT」が発生することを認識しています。
また、BADi 内で「COMMIT WORK」を作成するのが正しくないことも認識していますが、BAPI 経由で「COMMIT WORK AND WAIT」を使用するとどうなりますか?
COMMIT に関する SAP ドキュメントには、次のように記載されています。
これにより、すべての高優先度 (VB1) 更新汎用モジュールが登録順に実行され、共通データベース LUW で実行されます。オプション AND WAIT を指定しない場合、プログラムは更新ワークプロセスがそれを実行するまで待機せず (非同期更新)、代わりに COMMIT WORK の直後に再開されます。ただし、AND WAIT オプションを指定した場合、COMMIT WORK 以降のプログラム処理は、更新ワークプロセスが優先度の高い更新汎用モジュールを実行するまで継続しません (同期更新)。
優先度の高い更新汎用モジュールがすべて正常に完了すると、命令によって優先度の低い (VB2) 更新汎用モジュールが登録順に実行され、共通データベース LUW にまとめられます。
パラメータ 'WAIT' = 'X' で前述の関数への呼び出しがある BADi 実装があり、その BADi 内で 'COMMIT WORK' の使用を禁止している SAP ノートを見つけたので、私の混乱が生じますが、それは言う「COMMIT WORK AND WAIT」ではなく「COMMIT WORK」。
したがって、LUW が終了したときにそのデータがコミットされるため、実装は正しいと考えることができます...またはそうではありません。コメントはありますか?