使用する
すべてのトランザクションRFCは、テーブルARFCSSTATEおよびARFCSDATAに格納されます。ここで、各LUWは一意のIDで識別されます。COMMIT WORKが実行されると、このIDに属する呼び出しがターゲットシステムで実行されます。システム汎用モジュールARFC_DEST_SHIPはデータを対象システムに移送し、汎用モジュールARFC_EXECUTEはストアドファンクション呼び出しを実行します。いずれかの呼び出し中にエラーまたは例外が発生した場合、前の呼び出しによって開始されたすべてのデータベース操作がロールバックされ、適切なエラーメッセージがファイルARFCSSTATEに書き込まれます。
手順
トランザクションIDのステータスを確認する方法は2つあります。
-
ABAPプログラムから
汎用モジュールID_OF_BACKGROUNDTASKは、LUWのIDを返します。このモジュールは、最初のCALL … INバックグラウンドタスクの後、COMMITWORKの前に呼び出します。
CALL FUNCTION’ID_OF_BACKGROUNDTASK’ IMPORTING TASK-ID=TID。
LUWのIDを特定したら、汎用モジュールSTATUS_OF_BACKGROUNDTASKを使用して、トランザクションRFCのステータスを決定することができます。
CALL FUNCTION’STATUS_OF_BACKGROUNDTASK’
-
オンライン
トランザクションSM58(
)を呼び出します。このツールは、正常に実行できなかった、またはバッチジョブとして計画する必要があったトランザクションRFCのみを一覧表示します。このリストには、LUWIDとエラーメッセージが含まれています。SM58に表示されるエラーメッセージは、ターゲットシステムから取得されます。メッセージのテキストを表示するには、メッセージをダブルクリックします。トランザクションSM58では、さまざまな段階でトランザクションRFCを制御することもできます。送信プロセス中にコールが異常終了した場合は、再送信を試行する前に、ロールバックLUW機能を使用してLUWを手動でロールバックする必要がある場合があります。ターゲットシステムが利用できない場合は、 Backgr.job関数を使用して、呼び出し用に作成されたバッチジョブを表示できます。functを実行します。モジュールを使用すると、一時的なエラー(構文エラーなど)が発生した後に呼び出しを再開できます。
-
結果
LUWが対象システムで正常に実行されると、汎用モジュールARFC_DEST_CONFIRMがトリガされ、対象システムでの正常な実行が確認されます。最後に、テーブルARFCSSTATEおよびARFCSDATAのエントリが削除されます。