テーブル ループとテーブル抽出 Functoid が一緒に使用されます。 テーブル ループ Functoid には、構成する内部テーブルがあります。 入力レコードまたはフィールドごとに、 テーブル ループ Functoid によってテーブルの行が一度に 1 つずつ出力されます。 Table Extractor Functoid は、行から目的の項目を抽出し、出力インスタンス メッセージに渡します。
テーブル ループとテーブル抽出 Functoid の概念については、「テーブル ループとテーブル抽出 Functoid」を参照してください。
テーブルループ関数とテーブル抽出関数をマップに追加して設定するには
Visual Studio ツールボックスがアクティブな状態で、[ 高度な Functoid ] タブをクリックして、そのカテゴリの Functoid を選択します。
選択したカテゴリの高度な Functoid の一覧が表示されます。
テーブル ループ Functoid (
ドラッグします。)ツールボックスからグリッド ページ上の適切な場所に移動します。
注
Functoid は、表示されているグリッド ページに配置されます。 Functoid を別のグリッド ページに配置する場合は、最初にそのグリッド ページを表示する必要があります。
注
テーブル ループ Functoid の出力は、関連付けられている 1 つ以上のテーブル抽出 Functoid への入力として機能するため、テーブル抽出 Functoid のテーブル ループ Functoid の右側に空きがあることを確認します。
ソース スキーマから新しく追加された テーブル ループ Functoid にレコードまたはフィールドをドラッグします。 テーブル ループ Functoid の最初の入力パラメーターとして、インスタンス メッセージ内のこのレコードまたはフィールドの出現回数は、この Functoid が出力を生成する回数を制御します。 たとえば、ループ レコードが Functoid にドラッグされ、このレコードが 10 回出現するインスタンス メッセージが処理され、テーブル グリッドに列データのソースが 1 行構成されている場合、 テーブル ループ Functoid は 10 回繰り返し処理され、 Table Extractor Functoid による抽出用の出力行が 10 行生成されます。 10 個の宛先レコードを簡単に構築できます。
注
テーブル グリッドで複数の行を構成すると、テーブル ループ Functoid のイテレーションごとに、このような各行が出力されます。 そのため、入力レコードの出現回数は、テーブル グリッドで構成された行数に対して、データ抽出に使用できる出力テーブル行の数になります。
レコードまたはフィールドを宛先スキーマから テーブル ループ Functoid にドラッグします。 このリンクにより、宛先スキーマにノードが確実に作成されます。
新しく追加したテーブル ループ Functoid を選択し、[プロパティ] ウィンドウで、入力パラメーター プロパティに関連付けられている省略記号 (...) ボタンをクリックします。
注
または、Functoid を選択し、キーボードから Ctrl + M キー、Ctrl + T キーを押します。 マッパーのキーボード ショートカットの一覧については、「 BizTalk マッパーのキーボード ショートカット」を参照してください。
[ テーブル ループ Functoid の構成 ] ダイアログ ボックスで、[
ボタンをクリックして、2 番目の入力パラメーターを作成します。 この テーブル ループ Functoid 用に作成するテーブルで使用できる列の数を表す数値を入力します。
注
テーブル内の列の最大数は 228 です。
[テーブルループ Functoid の構成] ダイアログ ボックスで、
[定数入力パラメーターをFunctoidに追加]ボタンをクリックして、構成済みのテーブル グリッドに表示される定数値を入力します。「Add_input_parameters」 これらの定数を作成する順序は、1 番目と 2 番目のパラメーター値、行数と列数がそれぞれ入力パラメーター リストの先頭に位置を保持している限り、このダイアログ ボックスでは重要ではありません。 設定が完了したら [OK] をクリックします。
[ テーブル ループ Functoid の構成 ] ダイアログ ボックスが閉じます。
ソース スキーマから、最近追加した テーブル ループ Functoid に、0 個以上のレコードノードまたはフィールド ノードをドラッグします。 これらの各レコードノードとフィールドノードは入力パラメータリストの末尾に追加されるため、後者のステップでテーブルグリッドが構成されている場合に使用できます。 前に追加したテーブル データ定数 (行と列数の定数ではない) と同様に、これらのレコードノードとフィールドノードが追加される順序は最終的には関係ありません。
リンクにラベルを付ける手順は次のとおりです。
表示されているグリッド ページでリンクを選択します。
Visual Studio の [プロパティ] ウィンドウで、 Label プロパティのわかりやすい名前を指定します。 たとえば、"2 番目の作成者" というフィールドからのリンクに "link2ndAuthor" のような名前を付ける場合があります。
新しく追加したテーブル ループ Functoid を選択し、[プロパティ] ウィンドウで、その Functoid に関連付けられている Table Looping Grid プロパティに関連付けられている省略記号 (...) ボタンをクリックします。
[ テーブル ループ Functoid の構成 ] ダイアログ ボックスが表示され、[ テーブル ループ グリッド ] タブが選択されています。
注
または、Functoid を右クリックし、コンテキスト メニューの [ テーブル ループ グリッドの構成 ] をクリックします。 [ テーブル ループ Functoid の構成 ] ダイアログ ボックスが表示され、[ テーブル ループ グリッド ] タブが選択されています。
各テーブル セルに関連付けられているドロップダウン リストを使用して、グリッド内の少なくとも 1 つの行 (場合によっては複数の行) を構成します。 ドロップダウン リストで使用できる選択肢は、入力パラメーター 3 および テーブル ループ Functoid までの手順 6 から 8 で構成した定数とリンクです。 (入力パラメーター 1 と 2 は、これらのドロップダウン リストには表示されません)。完了したら、[OK] をクリック します。
[ テーブル ループ Functoid の構成 ] ダイアログ ボックスが閉じます。
注
各行は、 テーブル ループ Functoid の最初の入力パラメーターとして指定されたレコードまたはフィールドの出現回数と組み合わせて、出力構造の 1 つの反復を構成します。 詳細については、手順 3 を参照してください。
注
テーブル抽出 Functoid を使用してアクセスする各列の値を選択する必要があります。 テーブル抽出 Functoid で列が使用されていない場合は、その列を維持するのではなく、削除することを検討する必要があります。
注
テーブル グリッドに入力する順序は重要ではありません。
テーブル抽出 ファンクトイド (
)を、必要に応じてツールボックスから表示されるグリッドページにいくつでもドラッグして移動します。
注
これらのテーブル抽出 Functoid の入力は、前の手順で追加したテーブル ループ Functoid から取得されるため、表示されるグリッド ページのテーブル ループ Functoid の右側にテーブル抽出 Functoid を配置してください。
手順 9 で追加した いずれかのテーブル抽出 Functoid の最初の入力パラメーターを作成するには、関連する テーブル ループ Functoid を左にドラッグします。
同じテーブル抽出 Functoid の 2 番目の入力パラメーターを作成するには、Functoid を選択し、[プロパティ] ウィンドウで、入力パラメーター プロパティに関連付けられている省略記号 (...) ボタンをクリックします。
[ テーブル抽出 Functoid の構成 ] ダイアログ ボックスが表示されます。
[
ボタンをクリックして、2 番目の入力パラメーターを作成します。 データの抽出元となる対応する テーブル ループ Functoid のテーブル グリッドに列の番号を入力します。 OK をクリックします。
[ テーブル抽出 Functoid の構成 ] ダイアログ ボックスが閉じます。
注
列番号は 1 から始まります。
テーブル抽出 Functoid の出力を使用するには、テーブル抽出 Functoid を変換先スキーマのレコードまたはフィールド ノードにドラッグするか、コピー先スキーマのレコードまたはフィールド ノードをテーブル抽出 Functoid にドラッグします。 変換先スキーマのこのレコードまたはフィールド ノードに対応する宛先インスタンス メッセージの要素または属性値には、テーブル グリッド内の指定されたセルの値 (定数の場合) または (リンクの場合) によって示される値が設定されます。
手順 11 で追加したテーブル 抽出 Functoid ごとに、手順 12、13、14、15 を繰り返します。