リクエストの処理方法の設定 - Cloud - 8.0

ESB SOAP

Version
Cloud
8.0
Language
日本語 (日本)
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > ESBコンポーネント > ESB SOAPコンポーネント
データガバナンス > サードパーティーシステム > ESBコンポーネント > ESB SOAPコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > ESBコンポーネント > ESB SOAPコンポーネント

手順

  1. tMysqlInputをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
  2. Mysql接続とデータベーステーブルの基本設定を入力します。
    [...]ボタンをクリックし、スキーマエディターを開きます。
  3. [+]ボタンをクリックし、idと文字列型のnameの2つのカラムを追加します。
    [OK]をクリックして、エディターを閉じます。
    [Guess Query] (クエリーの推測)をクリックして、SQLクエリーを取得します。
  4. tXMLMapをダブルクリックし、Mapperを開きます。
  5. 入力フロー側(左)の[main : row1] (メイン : 行1)テーブルでpayloadという名前のカラムを右クリックし、コンテキストメニューから[Import from Repository] (リポジトリーからインポート)を選択します。[Metadata] (メタデータ)ウィザードが開きます。
    リクエストメッセージのスキーマを選択し、[OK]をクリックしてこの選択を検証します。この例では、スキーマはgetAirportInformationByISOCountryCodeです。
  6. 同じ手順を実行して、応答/フォールトメッセージ(右)の階層スキーマをインポートします。このサンプルでは、 これらのスキーマは、それぞれgetAirportInformationByISOCountryCodeResponsegetAirportInformationByISOCountryCodeFaultです。
  7. 次に、ルックアップデータへの結合を作成するには、メインフローのCountryAbbrviationノードをルックアップフローのidカラムにドロップします。
  8. ルックアップフローテーブルで、右上のレンチアイコンをクリックして設定パネルを開きます。
    [Lookup Model] (ルックアップモデル)[Reload at each row] (行ごとにリロード)に設定し、[Match Model] (一致モデル)[All matches] (すべて一致)に設定し、[Join Model] (結合モデル)[Inner join] (内部結合)に設定します。
  9. airport_response出力フローテーブルで、右上のレンチアイコンをクリックして設定パネルを開きます。
    [All in one] (すべて1つ)オプションをtrueに設定します。これにより、複数の空港がデータベース内に見つかった場合、各リクエストに対して1つの応答のみが返されます。
  10. fault_message出力フローテーブルで、右上のレンチアイコンをクリックして設定パネルを開きます。
    リクエスト内の国コードとデータベーステーブル内のレコードとの間の不一致を監視するには、[Catch Lookup Inner Join Reject] (内部結合ルックアップ拒否を捕捉)オプションをtrueに設定します。このような状況が発生すると、tESBConsumerによってフォールトメッセージが生成され、[Row] (行) > [Fault] (フォールト)フローによって出力されます。
    注:

    tESBConsumer[Row] (行) > [Fault] (フォールト)フローには事前定義されたスキーマがあります。そのfaultStringカラムには、tESBProviderFaultのフィールド[Fault title] (フォールトタイトル)のコンテンツが含まれています。

  11. ルックアップフローのnameカラムを、airport_response出力フローのtns:getAirportInformationByISOCountryCodeResultノードの横にある[Expression] (式)エリアにドロップします。
    メインフローのtns:CountryAbbreviationノードを、fault_message出力フローのtns:getAirportInformationByISOCountryCodeFaultStringノードの横にある[Expression] (式)エリアにドロップします。このようにして、リクエストの不正な国コードは、tESBConsumer[Row] (行) > [Fault] (フォールト)フローのfaultDetailカラムに表示されます。
    [OK]をクリックしてエディターを閉じ、この設定を有効にします。
  12. tESBProviderFaultをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
  13. フィールド[Fault title] (フォールトタイトル)に、コンテキスト変数context.fault_messageを入力します。
    コンテキスト変数を定義する方法は、『 Talend Studioユーザーガイド』を参照してください。