値のマッピング (フラット化) Functoid
値マッピング (フラット化) Functoid を使用すると、複数のレコードを 1 つのレコードに変換することで、入力インスタンス メッセージの一部をフラット化できます。 これは、Microsoft Commerce Server カタログを変換する場合の一般的な操作です。
Note
値マッピング (フラット化) Functoid は、ループ Functoid または Table Looping Functoid と組み合わせてはなりません。 これらを組み合わせると、コンパイルされたマップが作成され、 ループ またはテーブル ループ Functoid の下にあるターゲット ノードのソース ループ 依存関係がないことを前提としています。
次のコードは、商品カタログの一部を示しています。各レコードの特徴をバリアントで示した商品のバリアントが一覧になっています。
<ns0:Root xmlns:ns0="http://ValueMappingFlat.ProductsIn">
<ProductVariant ListPrice="99.99" ID="45-01">
<Feature Name="Material" Value="Leather" />
<Feature Name="Color" Value="Black" />
</ProductVariant>
<ProductVariant ListPrice="69.99" ID="45-02">
<Feature Name="Material" Value="Vinyl" />
<Feature Name="Color" Value="Brown" />
</ProductVariant>
</nso0:Root>
カタログのこの部分をフラット化すると、 Feature レコードが ProductVariant レコードの属性に変換されます。
<ns0:Root xmlns:ns0="http://ValueMappingFlat.ProductsOut">
<ProductVariant ListPrice="99.99" ID="45-01" Material="Leather" Color="Black" />
<ProductVariant ListPrice="69.99" ID="45-02" Material="Vinyl" Color="Brown" />
</ns0:Root>
次の図は、この変換を実行するためのマップを示しています。
値のマッピング (フラット化) のマップ
値マッピング (フラット化) Functoid は、最初のパラメーターが true の場合、2 番目のパラメーターの値を返します。 このマップでは、最初の Equal Functoid が Name 属性が "Material" と等しいかどうかをテストします。 属性が "Material" と等しい場合、 Equal Functoid は True を返します。 次に、値 マッピング (フラット化) Functoid によって 、Value 属性の値が出力メッセージのフィールドに割り当てられます。
参照
マップに値のマッピング (フラット化) Functoid を追加する方法
カタログに対するフラット スキーマ
高度な Functoid