レコード カウント Functoid
Record Count functoid は、入力インスタンス メッセージ内のレコードをカウントします。
Record Count Functoid には、1 つの入力と 1 つの出力があります。 入力は、送信元スキーマのループ レコードからリンクになります。 Record Count functoid の出力は、実際の入力インスタンス メッセージ内のループ レコードの数です。
ループ レコードは、入力インスタンス メッセージ内にある、繰り返し回数が不明な要素に対応します。 たとえば、発注書では、 Item 要素が何度も発生する可能性があります。 また、Item 要素には、製品、説明、価格、数量が含まれる場合があります。 次のコードは、このような注文書の簡単な例を示しています。
<ns0:PurchaseOrder xmlns:ns0="http://RecordFunctoid.PurchaseOrder">
<From>Kevin F. Browne</From>
<To>Northwind Traders</To>
<LineItems>
<Item>
<Product>Laptop Computer</Product>
<Description>Thin profile laptop</Description>
<Price>1999.95</Price>
<Quantity>1</Quantity>
</Item>
<Item>
<Product>Monitor Swipes</Product>
<Description>Disposable monitor swipes</Description>
<Price>3.95</Price>
<Quantity>10</Quantity>
</Item>
</LineItems>
</ns0:PurchaseOrder>
Item レコードの Max Occurs プロパティは、無制限として設定されます。 これは 、Item レコードがループし、BizTalk マッパーがこのレコードをループとしてコンパイルすることを示します。
発注書入力インスタンス メッセージ内の Item 要素の合計数を検索し、その結果を出力インスタンス メッセージのフィールドに配置するとします。
次の図は、受信した発注書のアイテム数をカウントし、SummedPO 出力インスタンス メッセージの ItemCount フィールドにその値を配置するレコード数 functoid を示しています。
レコード カウント Functoid のマップ
Item レコードの Max Occurs プロパティが無制限になることに注意してください。 これは 、Item レコードがループし、BizTalk マッパーがこのレコードをループとしてコンパイルすることを示します。
2 つの Item 要素を含む前述のサンプル発注書インスタンス メッセージの場合、 ItemCount フィールドの値は 2 に設定されます。
<ns0:SummedPO xmlns:ns0="http://RecordCountFunctoid.SummedPO">
<From>Kevin F. Browne</From>
<To>Northwind Traders</To>
<POTotal>2039.45</POTotal>
<ItemCount>2</ItemCount>
</ns0:SummedPO>
Note
また、レコード カウント Functoid を使用して、フィールド要素の繰り返し回数をカウントすることもできます。 これは、レコードに制限されません。
参照
マップにレコード カウント Functoid を追加する方法
高度な Functoid
インデックス Functoid
繰り返し Functoid
ループ Functoid