メイン コンテンツをスキップする 補完的コンテンツへスキップ

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

手順

  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ユーザーガイド』をご覧ください。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。