このセクションでは、サービス操作をシナリオに合うようにカスタマイズします。
手順
-
ワークスペースで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の実装が完了しました。