Webサービストランスフォーメーションの設定
ビジネスサービスを定義した後、Webサービスのデータへのアクセスやデータの変換を行うように、マッピングでWebサービストランスフォーメーションを設定できます。要件や利用可能なオプションは、Webサービストランスフォーメーションの接続先が1つのソースオブジェクトか複数のソースオブジェクトかで変わります。
トランスフォーメーションの設定
Webサービストランスフォーメーションを設定する場合、ソースオブジェクトを接続し、トランスフォーメーションのプロパティを設定して、受信フィールドをWebサービスで要求されるフィールドにマッピングし、応答を出力フィールドにマッピングして1つ以上の正常グループを作成します。フォルトグループはデータ統合によって自動的に作成されますが、出力フィールドにマッピングするかどうかを選択することはできます。
- 1マッピングを作成し、作業対象のソースオブジェクトを追加します。
- 2Webサービストランスフォーメーションをキャンバスに追加します。
- 3ソースをWebサービストランスフォーメーションに接続します。
- 4[Webサービス]タブでビジネスサービスおよびビジネス操作を選択します。
- 5[要求マッピング]および[応答マッピング]タブで、ソースフィールドとWebサービス要求の間のフィールドマッピングを作成します。
マッピングプロセスの図については、
Webサービストランスフォーメーションの例を参照してください。
- 6[出力フィールド]タブで、正常グループ、フォルトグループ、およびフィールドの詳細を確認します。必要に応じて、フィールドメタデータを編集できます。正常グループには、WebサービスのSOAP応答が含まれます。フォルトグループにはSOAPフォルトが含まれ、フォルトコード、文字列、およびフォルトの発生原因となったオブジェクト名が含まれます。
- 7詳細プロパティを定義します。
- 8マッピングを保存して実行します。
マッピングプロセスの詳細については、次のセクションを参照してください。
詳細プロパティ
次の表に、Webサービストランスフォーメーションの[詳細]タブで使用できるプロパティを示します。
プロパティ | 説明 |
---|
キャッシュサイズ | Webサービスの要求と応答に使用可能なメモリ。Webサービスの要求または応答に多くの行またはカラムが含まれる場合は、キャッシュサイズを拡大するとよいでしょう。デフォルトは100 KBです。 |
入力フラッシュを許可 | マッピングタスクでは、グループのすべてのデータがあるとき、XMLが作成されます。これを有効にすると、マッピングタスクでは、ルート値のすべてのデータを受信した後で、XMLはフラッシュされます。これを有効にしない場合、マッピングタスクでは、すべてのグループのデータを受信した後で、XMLがメモリに保存されてXMLが作成されます。 注: 複数のソースオブジェクトに接続している場合は、入力フラッシュを許可するオプションを選択できません。 |
トランザクションコミット制御 | トランスフォーメーションを通過する一連の行に基づいて、トランザクションのコミットまたはロールバックを制御します。マッピングタスクでトランザクションの変更を行にコミットするか、トランザクションの変更をロールバックするか、トランザクションを変更しないかを決める条件を指定するには、IIF関数を入力します。データの量が多く、その処理方法を制御する場合は、トランザクションコミットコントロールを使用します。 注: 複数のソースオブジェクトに接続している場合は、トランザクションコミット制御を設定できません。 |
受信フィールドのマッピング
要求マッピングを定義する場合、複数のソースオブジェクト間のリレーションを設定できます。応答マッピングと出力フィールド間のリレーションを個別に設定します。
受信フィールドをマッピングする場合、次のガイドラインに注意してください。
- •式を受信フィールドに適用する必要がある場合は、Webサービストランスフォーメーションのアップストリームにある式トランスフォーメーションを使用します。
- •必要なすべての情報をWebサービス要求に確実に含めるには、入力派生型フィールドを要求構造のフィールドにマッピングします。
次の図に示すように、受信フィールドを要求マッピングにマップできます。
各受信フィールドを、マッピングする要求構造のノードにドラッグします。
複数のソースオブジェクトの使用
複数のソースがある場合、次の要件に注意してください。
発信フィールドのマッピング
[応答マッピング]タブで、使用する出力フィールドに応答構造をマッピングします。出力フィールドの形式には、[リレーショナル]または[非正規化]を選択できます。
[リレーショナル]を選択すると、トランスフォーメーションによって次の出力グループが生成されます。
- •親要素の1つの出力グループ。
- •カーディナリティが1より大きい要素ごとに1つの出力グループ。
- •FaultGroup(使用している接続タイプでサポートされている場合)。
[非正規化]を選択すると、トランスフォーメーションによって次の出力グループが生成されます。
- •親要素の出力グループ。非正規化された出力では、親グループの要素値が子要素ごとに繰り返されます。
- •FaultGroup(使用している接続タイプでサポートされている場合)。
応答を出力フィールドにマッピングする応答のノード内のノードを右クリックします。次の図に示すように、すべての子孫をマッピングするか、直下の子のみをマッピングするかを選択できます。
トランザクションコミット制御
トランザクションコミット制御では、トランスフォーメーションを通過する一連の行に基づいて、トランザクションのコミットとロールバックを制御できます。
マッピングタスクでトランザクションの変更を行にコミットするか、トランザクションの変更をロールバックするか、トランザクションを変更しないかを決める条件を指定するには、IIF関数を入力します。マッピングタスクは、式の戻り値に基づいてコミットまたはロールバックを発行すると、新しいトランザクションを開始します。
注: 複数のソースオブジェクトに接続している場合は、トランザクションコミット制御を設定できません。
式には次の構文を使用します。
IIF (condition, value1, value2)
トランザクションコントロール式を作成するときは、次の組み込み変数を使用します。
- •TC_CONTINUE_TRANSACTION.マッピングタスクでは、この行のトランザクション変更が実行されません。これは式のデフォルト値です。
- •TC_COMMIT_BEFORE.マッピングタスクはトランザクションをコミットし、新しいトランザクションを開始し、カレント行をターゲットに書き出します。カレント行は、新しいトランザクション内にあります。
- •TC_COMMIT_AFTER。マッピングタスクは、カレント行をターゲットに書き出し、トランザクションをコミットし、新しいトランザクションを開始します。カレント行は、コミットされたトランザクション内にあります。
- •TC_ROLLBACK_BEFORE。マッピングタスクは、現在のトランザクションをロールバックし、新しいトランザクションを開始し、カレント行をターゲットに書き出します。カレント行は、新しいトランザクション内にあります。
- •TC_ROLLBACK_AFTER.マッピングタスクは、カレント行をターゲットに書き出し、トランザクションをロールバックし、新しいトランザクションを開始します。カレント行は、ロールバックされたトランザクション内にあります。
トランザクションコントロール式がコミット、ロールバック、または継続以外の値に評価された場合、マッピングは無効になります。
例
トランザクションコミット制御を使って、注文入力日に基づいて注文情報を書き出す場合を想定します。特定日に受けたすべての注文は、同じトランザクションでターゲットにコミットするとします。
New_Dateというフィールドを作成し、カレント行の注文日を前の行の注文日と比較して、このフィールドに情報を入力します。注文の日付が異なる場合、New_Dateは1になります。
この場合は、次の式を使用して、マッピングタスクで新しい注文日が発生したときにデータをコミットします。
IIF(New_Date = 1, TC_COMMIT_BEFORE, TC_CONTINUE_TRANSACTION)
受信フィールドと要求フィールドの表示
受信フィールドと要求フィールドを確認するときは、ページに表示されるフィールドの数を減らすことができます。
次の方法により、フィールドの確認や検索を行うことができます。
- ノードの展開と縮小
- ツリーの親ノードと子ノードを表示するには、すべてのノードを展開します。親ノードのみを表示するには、ノードを縮小します。[要求マッピング]または[応答マッピング]タブの[すべてのノードを展開]および[ノードを縮小]アイコンを使用します。
- フィールドの検索
- 特定のフィールドを検索するには、[検索]テキストボックスにフィールド名を入力します。
- フィールドのフィルタリング
- 受信フィールドをフィルタリングして、すべてのフィールド、キー、マッピングされたフィールド、またはマッピングされていないフィールドを表示できます。他のツリービューにも同じようなオプションがあります。
- フィールドおよびフィールドマッピングの詳細の表示
- 階層の各ノードで、フィールドおよびフィールドマッピングの詳細を表示できます。ノードを右クリックしてプロパティを表示します。
- フィールドマッピングおよびキーのクリア
- 要求構造ツリーで、マッピングのクリア、キーのクリア、または選択したフィールドのマッピングとマッピング解除を行うことができます。
パススルーフィールド
パススルーフィールドは応答フィールドであり、現在のトランスフォーメーションでは必要ありませんが、今後のマッピングで使用する可能性があります。
例えば、Webサービストランスフォーメーションでは、ソースオブジェクトのプライマリキーしか必要とならないことがあります。しかし、ダウンストリームトランスフォーメーションでは、ソースオブジェクトのその他のフィールドを使用する可能性があります。
受信フィールドと応答フィールドは、Webサービストランスフォーメーションを通過して、正常グループとフォルトグループに入ります。ただし、マッピングに複数のソースが含まれるときは、プライマリソースのフィールドのみが通過します。最初にWebサービストランスフォーメーションに接続されたソースがプライマリソースになります。例えば、次の図では、NewSourceがプライマリソースであり、NewSource1はセカンダリソースです。
NewSource1はセカンダリソースなので、このソースのフィールドは通過せず、正常グループとフォルトグループに入りません。
正常グループまたはフォルトグループでフィールドのソースを判断するには、[受信フィールド]タブを選択します。[オリジン]カラムには、各フィールドのソースが表示されます。