290.14. SAP の例
290.14.1. 例 1: SAP からのデータの読み取り リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
この例は、SAP から FlightCustomer ビジネスオブジェクトデータを読み取るルートを示しています。ルートは、データを取得するために SAP 同期 RFC 宛先エンドポイントを使用して FlightCustomer BAPI メソッド、BAPI_FLCUST_GETLIST を呼び出します。
ルートの Java DSL リンクのコピーリンクがクリップボードにコピーされました!
サンプルルートの Java DSL は次のとおりです。
from("direct:getFlightCustomerInfo")
.to("bean:createFlightCustomerGetListRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLCUST_GETLIST")
.to("bean:returnFlightCustomerInfo");
from("direct:getFlightCustomerInfo")
.to("bean:createFlightCustomerGetListRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLCUST_GETLIST")
.to("bean:returnFlightCustomerInfo");
ルートの XML DSL リンクのコピーリンクがクリップボードにコピーされました!
また、同じルートの Spring DSL は次のとおりです。
createFlightCustomerGetListRequest bean リンクのコピーリンクがクリップボードにコピーされました!
createFlightCustomerGetListRequest Bean は、後続の SAP エンドポイントの RFC 呼び出しで使用される exchange メソッドで SAP リクエストオブジェクトをビルドします。次のコードスニペットは、リクエストオブジェクトを作成する一連の操作を示しています。
returnFlightCustomerInfo bean リンクのコピーリンクがクリップボードにコピーされました!
returnFlightCustomerInfo Bean は、前の SAP エンドポイントから受け取った exchange メソッドで、SAP レスポンスオブジェクトからデータを展開するロールを果たします。次のコードスニペットは、レスポンスオブジェクトからデータを抽出する一連の操作を示しています。
290.14.2. 例 2: SAP へのデータの書き込み リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
この例は、SAP で FlightTrip ビジネスオブジェクトインスタンスを作成するルートを示しています。ルートは、FlightTrip BAPI メソッド BAPI_FLTRIP_CREATE を呼び出し、宛先エンドポイントを使用してオブジェクトを作成します。
ルートの Java DSL リンクのコピーリンクがクリップボードにコピーされました!
サンプルルートの Java DSL は次のとおりです。
from("direct:createFlightTrip")
.to("bean:createFlightTripRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLTRIP_CREATE?transacted=true")
.to("bean:returnFlightTripResponse");
from("direct:createFlightTrip")
.to("bean:createFlightTripRequest")
.to("sap-srfc-destination:nplDest:BAPI_FLTRIP_CREATE?transacted=true")
.to("bean:returnFlightTripResponse");
ルートの XML DSL リンクのコピーリンクがクリップボードにコピーされました!
また、同じルートの Spring DSL は次のとおりです。
トランザクションサポート リンクのコピーリンクがクリップボードにコピーされました!
SAP エンドポイントの URL では、transacted オプションが true に設定されています。「トランザクションサポート」 で説明されているように、このオプションを有効にすると、エンドポイントは、RFC 呼び出しを呼び出す前に SAP トランザクションセッションが開始されていることを確認します。このエンドポイントの RFC は SAP で新しいデータを作成するため、ルートの変更を SAP で永続的にするには、このオプションが必要です。
リクエストパラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
createFlightTripRequest および returnFlightTripResponse Bean は、前の例で示したのと同じ一連の操作に従って、リクエストパラメーターを SAP リクエストに入力し、SAP レスポンスからレスポンスパラメーターをそれぞれ展開します。
290.14.3. 例 3: SAP からのリクエストの処理 リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
この例は、SAP から BOOK_FLIGHT RFC へのリクエストを処理するルートを示しています。これはルートによって実装されています。さらに、JAXB を使用して SAP リクエストオブジェクトとレスポンスオブジェクトをカスタム Bean にアンマーシャリングおよびマーシャリングする、コンポーネントの XML シリアライゼーションサポートを示します。
このルートは、旅行代理店 FlightCustomer に代わって FlightTrip ビジネスオブジェクトを作成します。ルートは、最初に、SAP サーバーエンドポイントによって受信された SAP リクエストオブジェクトをカスタム JAXB Bean に非整列化します。次に、このカスタム Bean はエクスチェンジで 3 つのサブルートにマルチキャストされ、フライト旅行の作成に必要な旅行代理店、フライト接続、乗客情報が収集されます。最後のサブルートは、前の例で示したように、SAP でフライトトリップオブジェクトを作成します。最後のサブルートは、SAP レスポンスオブジェクトにマーシャリングされ、サーバーエンドポイントによって返されるカスタム JAXB Bean も作成して返します。
ルートの Java DSL リンクのコピーリンクがクリップボードにコピーされました!
サンプルルートの Java DSL は次のとおりです。
ルートの XML DSL リンクのコピーリンクがクリップボードにコピーされました!
同じルートの XML DSL は次のとおりです。
BookFlightRequest bean リンクのコピーリンクがクリップボードにコピーされました!
次のリストは、シリアライズされた形式の SAP BOOK_FLIGHT リクエストオブジェクトからアンマーシャリングする JAXB Bean を示しています。
BookFlightResponse Bean リンクのコピーリンクがクリップボードにコピーされました!
次のリストは、シリアライズされた形式の SAP BOOK_FLIGHT レスポンスオブジェクトにマーシャリングする JAXB Bean を示しています。
レスポンスオブジェクトの複雑なパラメーターフィールドは、応答の子要素としてシリアル化されます。
FlightInfo ビーン リンクのコピーリンクがクリップボードにコピーされました!
次のリストは、複雑な構造体パラメーター FLTINFO のシリアル化された形式にマーシャリングする JAXB Bean を示しています。
ConnectionInfoTable Bean リンクのコピーリンクがクリップボードにコピーされました!
次のリストは、複雑なテーブルパラメーター CONNINFO のシリアル化された形式にマーシャリングする JAXB Bean を示しています。
JAXB Bean のルート要素タイプの名前は、接尾辞 _TABLE が付いた行構造体タイプの名前に対応し、Bean には行要素のリストが含まれています。
ConnectionInfo bean リンクのコピーリンクがクリップボードにコピーされました!
次のリストは、上記のテーブルの行要素のシリアル化された形式にマーシャリングする JAXB Bean を示しています。