このセクションでは、サービス操作をシナリオに合うようにカスタマイズします。
手順
ワークスペースでtMysqlInput をダブルクリックし、[Component] (コンポーネント) タブで[Basic settings] (基本設定) ビューを開きます。
顧客データがMySQLデータベースにロードされるようにtMysqlInput を設定します。[DB version] (DBバージョン) フィールドで、MySQLデータベースのバージョンを選択します。この例ではMysql 5 です。関連するフィールドで、次のような接続の詳細を指定します。
データベースサーバーのホスト名またはIPアドレス
リスニングポート番号
データベース名
データベース認証のユーザー名とパスワード
[Schema] (スキーマ) を[Built-In] (組み込み) に設定し、[Edit schema] (スキーマを編集) をクリックして目的のスキーマを定義します。スキーマエディターが開きます。[+]ボタンをクリックしてStringタイプの行を3つ追加し、カラムにid、Phone、Emailという名前を付けます。[OK] をクリックして、スキーマエディターを閉じます。
[Table Name] (テーブル名) フィールドにデータベーステーブルの名前(この例ではcustomers )を入力します。
[Query] (クエリー) ボックスに、テーブルから目的のカラムを取得するために必要なクエリー(このサンプルでは、id 、Phone 、Email )を入力します。
デザインワークスペースでtXMLMap をダブルクリックし、エディターを開きます。この時点のエディターは次のような状態です。
入力フロー側(左)のメインの行テーブルでpayload という名前のカラムを右クリックし、コンテキストメニューから[Import from Repository] (リポジトリーからインポート) を選択します。[Metadata] (メタデータ) ウィザードが開きます。
このウィザードで[File XML] (XMLファイル) ノードを展開し、リクエスト側のスキーマを選択し、[OK] をクリックして選択を確定します。この例では、スキーマはCustomerServiceOperationRequest です。
出力フロー側(右)のメインの行テーブルでpayload という名前のカラムを右クリックし、コンテキストメニューから[Import from Repository] (リポジトリーからインポート) を選択します。[Metadata] (メタデータ) ウィザードでスキーマCustomerServiceOperationResponse を選択し、レスポンスのための階層スキーマをインポートします。
ルックアップデータへの結合を作成するために、入力フロー側(左)のメインの行テーブルでid ノードをクリックし、それをクリックしたまま、ルックアップフローのExp.key カラムにドロップします。これはid 行に対応するものです。
ルックアップフローを表すテーブルで右上のレンチアイコンをクリックし、設定パネルを開きます。[Lookup Model] (ルックアップモデル) を[Reload at each row] (行ごとにリロード) に設定し、[Match Model] (一致モデル) を[All matches] (すべて一致) に設定し、[Join Model] (結合モデル) を[Inner join] (内部結合) に設定します。
出力テーブル(右)で右上のレンチアイコンをクリックして設定パネルを開き、[All in one] (オールインワン) オプションを[true] (真) に設定します。Email ノードを右クリックし、コンテキストメニューで[As loop element] (ループエレメントとして) を選択します。
ルックアップフロー(左)でPhone 行をクリックし、それをクリックしたまま[Expression] (式) カラムにドロップします。これは出力フローのXMLツリービューのPhone ノードに対応します。同じようにしてEmail を左側から右側にマップします。
tXMLMap エディターは次のような状態です。
[OK] をクリックしてエディターを閉じ、この設定を有効にします。
タスクの結果
これでCustomerServiceOperation の実装が完了しました。