!--a11y-->
リリース
3.0 以降では、 トランザクション RFC (tRFC) を経由して、 確実かつ安全に 2 つの R/3 システム間でのデータ転送をすることができます。
このタイプの
RFC の名称は 非同期 RFC から トランザクション RFC に変更されました。これは、 R/3 システムでは 非同期 RFC はこのタイプの RFC とは異なる意味を持つためです。呼び出される汎用モジュールは、
RFC サーバシステム内で 1 度だけ実行されます。 RFC クライアントプログラムが tRFC を実行するときに、リモートシステムが使用可能である必要はありません。 tRFC コンポーネントは、呼び出された RFC ファンクションを関連データとともに R/3 データベースに保存します。このようなデータには、一意のトランザクション ID (TID) も含まれます。コールを送信しようとした時に受信側システムがダウンしていると、コールはそのままローカルキュー内にとどまります。
呼出元のダイアログプログラムは、リモートコールが成功したかどうかが確認されるまで待たずに、処理を進めることができます。 受信側システムが一定時間有効にならない場合、コールはバッチで処理されるようにスケジュールされます。トランザクション
RFC では、接尾辞 IN BACKGROUND TASK を使用します。同期コールの場合と同様に、パラメータ
DESTINATION によりリモートシステム内にプログラムコンテキストが定義されます。 その結果、単一の機能を同じ宛先で繰り返し ( または異なる機能を一度に ) 呼び出すと、呼び出される機能のグローバルデータが同一のコンテキスト内でアクセスされることがあります。このシステムでは、リモートコール依頼とそのパラメータ値が
DB テーブル ARFCSSTATE および ARFCSDATA に記録されます。 トランザクション SM58 を使用してログファイルを照会することができます。 呼出元のプログラムが COMMIT WORK まで実行されると、リモートコールが依頼システムに受け渡され、実行されます。ある
COMMIT WORK とその次の COMMIT WORK の間で発生し、単一の宛先が指定された tRFC はすべて、 1 つの作業論理単位 (LUW) に属します。 トランザクション型コールのステータスのチェック、 LUW 、 TID に関する追加情報については、 tRFC のトランザクション整合性を参照してください。トランザクション
RFC 依頼は、 TCP/IP または X400 を使用してバイトストリーム形式のパラメータデータとともに転送されます。
たとえば、更新プロシージャの特定タイプとしてトランザクション
RFC を使用することができます。 複雑なダイアログの中には、 1 つのトランザクションの中の複数のフェーズで複数の関連データベーステーブルを更新する必要のあるものがあります。 必要とされる更新機能がリモートマシンにあり、かつダイアログの続行直前にテーブル変更を実行しなくてもよい場合、トランザクション RFC コールを使用することができます。 各更新プロシージャの完了を待つ必要がないので、ユーザは直ちにトランザクションの終了まで進むことができます。 トランザクション RFC の処理によって、プログラムの COMMIT WORK 命令に到達した時点で、予定されていた更新処理がすべて完了しています。
同期リモートコールの場合と同様に、トランザクション
RFC に対して EXPORTING パラメータおよび TABLES パラメータを指定する必要はありません。
インタフェースで
EXPORT パラメータが指定されている場合には、トランザクション型メカニズムでリモート機能を呼び出すことができないことがあります。 CALL FUNCTION 命令に IMPORTING パラメータを指定すると、コンパイラエラーが発生します。また、コールバックを実行する機能を非同期で呼び出すことができない点にも注意してください。
リモートシステムが使用できない場合
リモートシステムが使用できない場合、
SAP システムでは該当するトランザクション ID がバリアントとして使用され、レポート RSARFCSE をバックグラウンドで実行するようスケジュールします。 実行のために非同期コールを転送するレポート RSARFCSE は、該当のシステムとの接続に成功するまで繰り返し呼び出されます。RSARFCSE
がバッチでスケジュールされている場合、このレポートは設定されている間隔 ( 初期設定では 15 分毎、 30 回まで試行 ) で自動的に実行されます。 この間隔とプログラムの試行時間をカスタマイズすることができます。 このカスタマイズを行うには、拡張プログラム SABP0000 および SABP0003 を使用します ( あるいは、 SAP 拡張のコンセプトおよび CALL CUSTOMER-FUNCTION を参照してください ) 。トランザクション
SM59 ( メニューパス : ツール → システム管理 → 管理 → ネットワーク → RFC 宛先 ) で、 宛先 → TRFC オプションを選択すると、各宛先を設定することができます。 タスクへの接続試行回数と、試行繰返しの時間間隔を設定することができます。指定した時間内にシステムに到達できない場合は、
RSARFCSE の呼出しは中止され、テーブル ARFCSDATA にステータス CPICERR が書き込まれます。 別に指定してある時間 ( 初期設定では 8 日 ) 内に、テーブル A RFCSSTATE 内の対応エントリは削除されます ( この制限もカスタマイズすることができます ) 。 ( このようなエントリをトランザクション SM59 により手動で開始することもできます ) 。
