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

データサービスコンシューマーを作成

コンシューマーを作成するためには、少なくとも次のコンポーネントが必要です:
  • データフローを読み取るための入力コンポーネントを
  • このフラットデータを階層型ドキュメント(ESBコンポーネントが期待している形式)にマッピングするtXMLMapコンポーネント
  • 対応するウェブサービスをリクエストし、その結果を読み取るtESBConsumerコンポーネント
  • ジョブ実行の結果を表示させるtLogRowコンポーネント

この特定のシナリオでは、tESBConsumerコンポーネントに国コードの要求を送信するための入力コンポーネントとして、tFixedFlowInputを使用します。

データサービスコンシューマージョブの作成

Procedure

  1. [Repository] (リポジトリー)ツリービューで[Job Designs] (ジョブデザイン)を右クリックし、[Create Job] (ジョブを作成) を選択します。
  2. 表示されるダイアログボックスでは、最初のフィールド[Name] (名前)のみが必須です。「airportJob」と入力し、[Finish] (終了)をクリックします。メインウィンドウに空白のジョブが開き、引き続き目的のジョブを作成できます。

コンシューマーにコンポーネントをドロップしてリンク

Procedure

  1. [Palette] (パレット)[Misc] (その他)コンポーネントグループでtFixedFlowInputコンポーネントをクリックします。次にデザインワークスペースの左側をクリックして、デザインエリアにこのコンポーネントを挿入します。
  2. 同じ手順で、各グループから[Palette] (パレット)tXMLMaptESBConsumertLogRowというコンポーネントを配置します。
  3. 入力コンポーネントをマッパーにリンクするには、tFixedFlowInputを右クリックし、それをクリックしたままtXMLMapにドロップします。
  4. tXMLMaptESBConsumerにリンクするには、tXMLMapを右クリックし、それをクリックしたままtESBConsumerにドラッグします。ポップアップウィンドウが開いたら、出力行リンクに付ける名前(requestなど)を入力します。次に、tESBConsumerからスキーマを取得するように指示するプロパゲーションを受け入れます。
  5. [Response]行リンクを使って、tESBConsumerコンポーネントをtLogRowにリンクします。

    データサービスコンシューマーのジョブは次の図のようになります:

    デザインワークスペース内のジョブのスクリーンショット。

Results

次に各コンポーネントを設定する必要があります。

tFixedflowInputコンポーネントを設定

Procedure

  1. tFixedFlowInputをダブルクリックし、その[Component] (コンポーネント)ビューを開きます。
    [Basic settings] (基本設定)ビュー。
  2. [Edit schema] (スキーマを編集)フィールドの横にある[...]ボタンをクリックし、[Schema] (スキーマ)を開きます。
    [Schema] (スキーマ)ウィンドウ。
  3. [+]ボタンを1回クリックし、スキーマに1つのカラムを追加し、country_codeと名前を付けます。[Type] (タイプ)フィールドはstringのままにしておきます。
  4. [OK]をクリックして、このスキーマを確定します。tFixedFlowInputのBasic Settings (基本設定)の[Mode] (モード)エリアで、[Use Single Table] (シングルテーブルの使用)が有効なオプションになり、[Values] (値)テーブルにcountry_code行が自動的に追加されています。
  5. [Values] (値)テーブルの[Values] (値)カラムで、CNに引用符を付けて入力します。

tXMLMapコンポーネントの設定

Procedure

  1. tXMLMapをダブルクリックし、[Map Editor] (マップエディター)を開きます。
    [Map Editor] (マップエディター)。
  2. 要求に対するWSDLスキーマをインポートするには、データサービスプロバイダーを作成した時と同じ手順を実行します。この例では、要求スキーマはgetAirportInformationByISOCountryCodeです。詳細は、tXMLMapの設定をご覧ください。
  3. 入力側(左)のメインフローテーブルでcountry_codeをクリックし、その状態で[Expression] (式)カラムにドロップします。これは、出力側(右)のXMLツリービューのtns:CountryAbbrviationノードに対応しています。
    情報メモNote: 実際には、tXMLMapを使って階層データの非常に複雑な変換を処理できます。

    tXMLMapの使用可能な全機能については、tXMLMapの操作をご覧ください。

  4. [OK]をクリックして、この設定を有効にします。

tESBConsumerコンポーネントの設定

Procedure

  1. tESBConsumerコンポーネントをダブルクリックし、その[Component] (コンポーネント)ビューを開きます。
    [Basic settings] (基本設定)ビュー。
  2. [Service configuration] (サービス設定)フィールドの横にある[...]ボタンをクリックし、WSDLエディターを開きます。
  3. エディターで、提供されるWSDLファイルを参照して探します。[Port Name] (ポート名)フィールドと[Operation] (操作)フィールドには、ウェブサービスで利用可能なポートとメソッドが自動的に入力されます。
    WSDLエディター。
  4. [Port Name] (ポート名)フィールドでairportSoapを選択し、[Operation] (オペレーション)フィールでgetAirportInformationByISOCountryCodeを選択します。
  5. [OK]をクリックして、設定を有効にします。
    tLogRowコンポーネントにより、前のコンポーネントからスキーマが自動的に取得されます。取得されない場合は、コンポーネントをダブルクリックし、その[Component] (コンポーネント)ビューの[Sync columns] (カラムを同期)ボタンをクリックします。

コンシューマージョブの実行

Procedure

ジョブを実行するにはF6を押します。

[Run] (実行)ビューが開き、実行結果が表示されます。

ジョブの実行に成功した後のコンソール結果のスクリーンショット。

Results

ジョブはコンシューマーに1つの国コード要求を送信し、プロバイダーのジョブを通じてウェブサービスを要求します。応答は、tESBProviderResponseコンポーネントとtESBConsumerコンポーネントで同時に取得されます。

プロバイダーのジョブが要求を受信しても、そのジョブは停止せず、新しい要求のリスニングを続けます。

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

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