コンテンツフレーム起動

トランザクション型 RFC サーバプログラム 文書を SAP ライブラリストラクチャに組み込む

R/3 システムへ RfcAccept で接続し、サポートされている RFC 機能をインストールしたら、 RFC サーバプログラムは RFC コール RfcInstallTransactionControl を使用して TID で作業し、サポートしている実際の RFC 機能のチェックと実行を行ってから RfcDispatch でループに入ります。

この機能により、以下の4つの機能( C ルーチンなど)がインストールされ、トランザクションの動きが制御されます。

この機能は、 tRFC R/3 から呼び出されると有効化されます。現在の TID がわたされます。この機能はその TID を常設記憶領域に格納して0を返す必要があります。後に再び、同一機能が同一 TID で呼び出された場合には、0以外の値を返す必要があります。別のプロセスが同じ TID をすでに実行しているが、終了していない場合、この機能はその機能が終了するまで待機するか、 RfcAbort RFC 接続を停止する必要があります。

この機能が呼び出されるのは、このトランザクションに属するすべての RFC 機能が実行され、ローカルトランザクションを完了させることができる場合です。必要な場合(データベースでの作業)、トランザクションをローカルでコミットするために使用します。

この機能は、ローカルトランザクションの処理中に RFC ライブラリ内でエラーが発生している場合に、 onCommit 機能の代わりに呼び出されます。この機能は、ローカルトランザクションのロールバックに使用できます(データベースでの作業)。

この機能が呼び出されるのは、ローカルトランザクションが終了した場合です。この TID に関する情報をすべて削除することができます。

注意

技術的な説明

R/3 システムの tRFC

このグラフィックは添付のテキストに説明されています

 

トランザクション SM59 では、以下のパラメータを設定できます。

注意

tRFC コンポーネントは、実行時に SAPGUI へ割り当てられないため、このトランザクションで定義したプログラムの格納場所「ユーザ」(現在使用中の SAPGUI RFC サーバプログラムを起動)を使用することはできません。

トランザクション SM58 では、トランザクションが正常に実行されていない場合、トランザクションの実行中の状態が表示されます。

tRFC コンポーネント、 RFC ライブラリ、 tRFC サーバプログラム間の tRFC

このグラフィックは添付のテキストに説明されています

 

tRFC コンポーネント、 RFC ライブラリ、 tRFC サーバは、以下の2フェーズで相互にやり取りします。

F1: 機能の転送

RFC ライブラリは、 tRFC データを受信すると、 tRFC サーバプログラムを起動します(アクション : 。起動): ループで RfcDispatch を使用すると、ライブラリはこのトランザクションの転送フェーズで、以下の機能を呼び出します。

上で説明したように、この機能転送フェーズで CPI-C エラー(ネットワークエラーなど)が発生すると、 R/3 システムの tRFC コンポーネントは機能転送フェーズを繰り返します。試行の最大回数と試行の間隔は、トランザクション SM59 TRFC オプションを使用して定義できます。

F2: 確認

RFC ライブラリが R/3 システムの tRFC コンポーネントに T3 の正常な終了を通知すると、現在のトランザクションの確認を直ちに受信します。次に RFC ライブラリは、以下の機能を呼び出します。

このフェーズの後で、現在のトランザクションは両サイドで正常に終了します。

サンプルテストプログラム trfcserv.c

RFC SDK の実行可能ファイルとソースコードの形式で配布されている C プログラム trfcserv.c は、 tRFC サーバプログラムの一例です。

テストする場合は、 ABAP プログラム SRFCTEST 、オプション トランザクション型 RFC をこのサーバプログラムで使用することができます。

R/3 システムから受信したデータは、動作しているプラットフォームの‘ trnn ... n.dat ’に書き込まれます。このファイルの各行は、内部テーブルの1行です。行の長さが 72 ビットの内部テーブルのみが使用されます。

trfcserv.c プログラムは、動作しているプラットフォームでファイル I/O を使用して、 TID を管理します。

TID 管理内に、各 TID のエントリがあり、エントリには日時、 TID 、トランザクションの状態( CREATED CONFIRMED など)、データファイルの名称があります。

このプログラムは異なるシステムでも動作できるようになっているので、ユーザの環境でこのプログラムをコンパイルしてリンクするには、対応するフラグ( SAPonUNIX SAPonNT など)を設定する必要があります。

詳細については、 RFC SDK とともに配布されているソースコードを参照してください。

 

 

コンテンツフレーム終了