290.5. RFC および IDoc エンドポイントの概要
SAP コンポーネントパッケージは、次の RFC および IDoc エンドポイントを提供します。
sap-srfc-destination
JBoss Fuse SAP Synchronous Remote Function Call Destination Camel コンポーネント。このエンドポイントは、Camel ルートが SAP システムへのリクエストと SAP システムからのレスポンスの同期配信を必要とする場合に使用します。
注記このコンポーネントで使用される sRFC プロトコルは、SAP システムとの間でリクエストとレスポンスを ベストエフォート で配信します。リクエストの送信中に通信エラーが発生した場合、受信側の SAP システムでのリモート関数呼び出しの完了ステータスは 不明 のままです。
sap-trfc-destination
JBoss Fuse SAP Transactional Remote Function Call Destination Camel コンポーネント。このエンドポイントは、リクエストを受信側の SAP システムに 最大 1 回 配信する必要がある場合に使用します。これを達成するために、コンポーネントはトランザクション ID
tid
を生成します。この ID は、ルートのエクスチェンジでコンポーネントを介して送信されるすべてのリクエストに付随します。受信側の SAP システムは、リクエストを配信する前に、リクエストに付随するtid
を記録します。SAP システムが同じtid
のリクエストを再度受信した場合、リクエストは配信されません。したがって、このコンポーネントのエンドポイントを介してリクエストを送信するときにルートで通信エラーが発生した場合、ルートは、配信および実行が 1 回だけと認識しながら、同じ exchange 内でリクエストの送信を再試行できます。注記このコンポーネントで使用される tRFC プロトコルは非同期であり、レスポンスを返しません。したがって、このコンポーネントのエンドポイントはレスポンスメッセージを返しません。
注記このコンポーネントは、エンドポイントを介した一連のリクエストの順序を保証しません。これらのリクエストの配信および実行順序は、通信エラーやリクエストの再送信により、受信側の SAP システムで異なる場合があります。配信順序の保証については、JBoss Fuse SAP Queued Remote Function Call Destination Camel コンポーネントを参照してください。
sap-qrfc-destination
JBoss Fuse SAP Queued Remote Function Call Destination Camel コンポーネント。このコンポーネントは、JBoss Fuse Transactional Remote Function Call Destination camel コンポーネントの機能を、そのエンドポイントを介したリクエストの配信に 順番に 配信保証を追加することで拡張します。このエンドポイントは、一連のリクエストが相互に依存しており、受信側の SAP システムに 最大 1 回、順番に 配信する必要がある場合に使用する必要があります。このコンポーネントは、JBoss Fuse SAP Transactional Remote Function Call Destination Camel コンポーネントと同じメカニズムを使用して、最大 1 回の 配信保証を実現します。順序の保証は、SAP システムが受信した順序でリクエストを 受信キュー にシリアル化することによって実現されます。受信キューは、SAP 内の QIN スケジューラー によって処理されます。インバウンドキューが アクティブになる と、QIN スケジューラーはキューリクエストを順番に実行します。
注記このコンポーネントで使用される qRFC プロトコルは非同期であり、レスポンスを返しません。したがって、このコンポーネントのエンドポイントはレスポンスメッセージを返しません。
sap-srfc-server
- JBoss Fuse SAP Synchronous Remote Function Call Server Camel コンポーネント。このコンポーネントとそのエンドポイントは、SAP システムからの要求と SAP システムへの応答を同期的に処理するために Camel ルートが必要な場合に使用します。
sap-trfc-server
-
JBoss Fuse SAP Transactional Remote Function Call Server Camel コンポーネント。このエンドポイントは、送信側の SAP システムがリクエストを Camel ルートに 最大 1 回 配信する必要がある場合に使用します。これを実現するために、送信側の SAP システムは、コンポーネントのエンドポイントに送信するすべてのリクエストに付随するトランザクション ID
tid
を生成します。送信側の SAP システムは、tid
に関連付けられた一連のリクエストを送信する前に、コンポーネントが特定のtid
を受信したかどうかを最初にチェックします。コンポーネントは、保持している受信tid
のリストをチェックし、送信されたtid
がそのリストにない場合はそれを記録してから送信 SAP システムに応答し、tid
がすでに記録されているかどうかを示します。tid
が以前に記録されていない場合、送信側の SAP システムは一連のリクエストを送信します。これにより、送信側の SAP システムは一連のリクエストを確実に camel ルートに 1 回送信できます。 sap-idoc-destination
- JBoss Fuse SAP IDoc Destination Camel コンポーネント。このエンドポイントは、中間ドキュメント (IDoc) のリストを SAP システムに送信するために Camel ルートが必要な場合に使用します。
sap-idoclist-destination
- JBoss Fuse SAP IDoc List Destination Camel コンポーネント。このエンドポイントは、中間ドキュメント (IDoc) のリストを SAP システムに送信するために Camel ルートが必要な場合に使用します。
sap-qidoc-destination
- JBoss Fuse SAP Queued IDoc Destination Camel コンポーネント。このコンポーネントとそのエンドポイントは、中間ドキュメント (IDoc) のリストを 順番 に SAP システムに送信するために Camel ルートが必要な場合に使用します。
sap-qidoclist-destination
- JBoss Fuse SAP Queued IDoc List Destination Camel コンポーネント。このコンポーネントとそのエンドポイントは、中間ドキュメント (IDoc) のリストを 順番 に SAP システムに送信するために Camel ルートが必要な場合に使用します。
sap-idoclist-server
-
JBoss Fuse SAP IDoc List Server Camel コンポーネント。このエンドポイントは、送信側の SAP システムが中間ドキュメントリストを Camel ルートに配信する必要がある場合に使用します。このコンポーネントは、
sap-trfc-server-standalone
クイックスタートで説明されているように、tRFC プロトコルを使用して SAP と通信します。
SAP RFC 宛先エンドポイント
RFC 宛先エンドポイントは、SAP へのアウトバウンド通信をサポートします。これにより、これらのエンドポイントは、SAP の ABAP 関数モジュールへの RFC 呼び出しを行うことができます。RFC 宛先エンドポイントは、SAP インスタンスへの特定の接続を介して特定の ABAP 関数への RFC 呼び出しを行うように設定されています。RFC 宛先は、アウトバウンド接続の論理的な指定であり、一意の名前を持っています。RFC 宛先は、宛先データ と呼ばれる一連の接続パラメーターによって指定されます。
RFC 宛先エンドポイントは、受信した IN-OUT exchange の入力メッセージから RFC リクエストを抽出し、そのリクエストを関数呼び出しで SAP にディスパッチします。exchange の出力メッセージには、関数呼び出しからの応答が含まれます。SAP RFC 宛先エンドポイントはアウトバウンド通信のみをサポートするため、RFC 宛先エンドポイントは producer の作成のみをサポートします。
SAP RFC サーバーエンドポイント
RFC サーバーエンドポイントは、SAP からのインバウンド通信をサポートします。これにより、SAP の ABAP アプリケーションがサーバーエンドポイントに対して RFC 呼び出しを行うことができます。ABAP アプリケーションは、リモート関数モジュールであるかのように RFC サーバーエンドポイントと対話します。RFC サーバーエンドポイントは、SAP インスタンスから特定の接続を介して特定の RFC 関数への RFC 呼び出しを受信するように設定されています。RFC サーバーは、インバウンド接続の論理的な指定であり、一意の名前を持っています。RFC サーバーは、サーバーデータ と呼ばれる一連の接続パラメーターによって指定されます。
RFC サーバーエンドポイントは、入力 RFC リクエストを処理し、それを IN-OUT exchange の入力メッセージとしてディスパッチします。exchange の出力メッセージは、RFC 呼び出しのレスポンスとして返されます。SAP RFC サーバーエンドポイントはインバウンド通信のみをサポートするため、RFC サーバーエンドポイントは consumer の作成のみをサポートします。
SAP IDoc および IDoc リストの宛先エンドポイント
IDoc 宛先エンドポイントは、SAP へのアウトバウンド通信をサポートします。SAP は、IDoc メッセージに対してさらに処理を実行できます。IDoc ドキュメントはビジネストランザクションを表し、非 SAP システムと簡単にエクスチェンジできます。IDoc 宛先は、宛先データ と呼ばれる一連の接続パラメーターによって指定されます。
IDoc リスト宛先エンドポイントは、処理するメッセージが IDoc ドキュメントの リスト で設定されることを除いて、IDoc 宛先エンドポイントに似ています。
SAP IDoc リストサーバーエンドポイント
IDoc リストサーバーエンドポイントは、SAP からのインバウンド通信をサポートし、Camel ルートが SAP システムから IDoc ドキュメントのリストを受信できるようにします。IDoc リストサーバーは、サーバーデータ と呼ばれる一連の接続パラメーターによって指定されます。
メタデータリポジトリー
メタデータリポジトリーは、次の種類のメタデータを格納するために使用されます。
- 汎用モジュールのインタフェース説明
- このメタデータは、JCo および ABAP ランタイムによって使用され、RFC 呼び出しをチェックして、それらの呼び出しをディスパッチする前に、通信パートナー間でタイプセーフなデータ転送を保証します。リポジトリーには、リポジトリーデータが取り込まれます。リポジトリーデータは、名前付き関数テンプレートのマップです。関数テンプレートには、関数モジュールとの間で渡されるすべてのパラメーターとその入力情報を記述するメタデータが含まれており、関数テンプレートが説明する関数モジュールの一意の名前が付けられています。
- IDoc タイプの説明
- このメタデータは、IDoc ランタイムによって使用され、IDoc ドキュメントが通信パートナーに送信される前に正しくフォーマットされていることを確認します。基本的な IDoc タイプは、名前、許可されたセグメントのリスト、およびセグメント間の階層関係の説明で設定されます。いくつかの追加の制約をセグメントに課すことができます。セグメントは必須またはオプションにすることができます。また、各セグメントの最小/最大範囲を指定することができます (そのセグメントの許容反復回数を定義します)。
したがって、SAP 宛先およびサーバーエンドポイントは、RFC 呼び出しを送受信し、IDoc ドキュメントを送受信するために、リポジトリーへのアクセスを必要とします。RFC 呼び出しの場合、エンドポイントによって呼び出されて処理されるすべての機能モジュールのメタデータは、リポジトリー内に存在する必要があります。IDoc エンドポイントの場合、エンドポイントによって処理されるすべての IDoc タイプおよび IDoc タイプ拡張のメタデータは、リポジトリー内に存在する必要があります。宛先およびサーバーエンドポイントによって使用されるリポジトリーの場所は、それぞれの接続の宛先データおよびサーバーデータで指定されます。
SAP 宛先エンドポイントの場合、使用するリポジトリーは通常、SAP システムに存在し、接続先の SAP システムにデフォルト設定されます。このデフォルトでは、宛先データに明示的な設定は必要ありません。さらに、宛先エンドポイントが行うリモート関数呼び出しのメタデータは、それが呼び出す既存の関数モジュールのリポジトリーにすでに存在します。したがって、宛先エンドポイントによって行われる呼び出しのメタデータは、SAP コンポーネントで設定する必要はありません。
一方、サーバーエンドポイントによって処理される関数呼び出しのメタデータは、通常、SAP システムのリポジトリーには存在せず、代わりに SAP コンポーネントに存在するリポジトリーによって提供される必要があります。SAP コンポーネントは、名前付きメタデータリポジトリーのマップを維持します。リポジトリーの名前は、メタデータを提供するサーバーの名前に対応しています。