コンテンツフレーム起動

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

tRFC インタフェースを使用して作業する場合、 RFC クライアントプログラムは、 R/3 への接続が完了したら( RfcOpen 経由)、以下の2つの RFC コールを使用する必要があります。

RFC ライブラリは、このコールを使用して R/3 が登録した TID を取得しようとします。エラーが発生した場合、 RFC クライアントプログラムは後で再度接続を試行して、このコールを繰り返す必要があります。エラーが発生しない場合、 RFC クライアントプログラムはこの TID RFC データに割り当てることができます。次のコールでエラーが発生した場合には、後で繰り返すことができます。

このコールを使用すると、 RFC ライブラリは、 RFC 機能に属するすべての RFC データを TID とともに圧縮し、 tRFC プロトコルを使用して R/3 システムへ送信します。
エラーが発生した場合、 RFC クライアントプログラムは後で再度接続を試行して、この RFC コール( RfcIndirectCall )を繰り返す必要があります。その場合、古い TID を使用する必要があるので、 RfcCreateTransID を使って新規の TID を取得 しないでください。新規 TID を使用した場合、この RFC R/3 システムで 一度だけ実行されるという保証はありません。
このコールが問題なく実行されると、トランザクションは1度だけ、すべてに対して実行されます。 RFC クライアントプログラムは、独自の TID 管理を更新できます(たとえば TID エントリの削除など)。

R/3 システム間の tRFC とは異なり、 RFC クライアントプログラムからのトランザクションに含まれる RFC 機能は 一つだけです。

技術的な説明

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

 

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

RFC SDK で配布されている C プログラム trfctest.c (実行可能ファイルとソースコード)は、 tRFC クライアントプログラムの例です。

R/3 システムに接続するには、 saprfc.ini ファイルが必要です。

tRFC R/3 システムに転送されるデータは、ファイルに保存されている必要があります。そのファイル名は、プログラムを起動時に要求されます。このファイルの各行は、内部テーブルの1行です。行の長さが 72 ビットの内部テーブルが、1つに限り使用されます。

R/3 システムが受信したすべてのデータは、 R/3 システムの TCPIC テーブルに書き込まれ(最初の 40 バイトのみ)、汎用モジュール STRFC_WRITE_TO_TCPIC が有効になります。

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

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

プログラム trfctest.c を崩し、エラーをシミュレートすることができます。

このプログラムが起動されると、 TID 管理は調査され、異常終了したトランザクションが検索されます。異常終了したトランザクションがあると、まずそのトランザクションの繰り返しを試行します。

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

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

 

 

コンテンツフレーム終了