品目ルールを使用したカタログおよびカテゴリの割当
カタログとそのカテゴリに品目を割り当てるルールと、それらの割当を検証するルールを定義できます。
カタログおよびカテゴリ割当ルール
条件が満たされた場合に1つ以上のカタログおよびカテゴリに品目を自動的に割り当てる割当ルールを定義できます。 条件は、属性値、組織割当またはその他のカタログ割当に基づくことができます。
次の表に、品目ルールの例をまとめます:
-
衣服を表す品目の品目クラスに関連付けられているルール・セットで定義されます。
-
品目に
XS
と等しい属性SizeおよびWool
と等しい属性Materialがあるかどうかをテスト -
テストの結果がtrueの場合は、カタログ
KidsWear
のカテゴリWinter
に品目を割り当てます。
フィールド |
値 |
---|---|
名前 |
カタログ割当 |
説明 |
指定された属性に基づくカタログ/カテゴリへの品目の自動割当。 |
戻りタイプ |
カタログ・カテゴリ |
プライマリIf式 |
True |
セカンダリIf式 |
|
戻り値 |
|
ユーザー・メッセージ |
XS、Wool品目は、KidsWearカタログの冬カテゴリに割り当てられます。 |
ルールを使用したカタログおよびカテゴリの再割当
品目ルールでは、シナリオに応じて様々なカテゴリに品目を再割当できます。
-
カタログで複数の品目カテゴリ割当が許可されている場合は、品目がすでに別のカテゴリに割り当てられている場合でも、再割当ルールによってカテゴリへの新規品目割当が作成されます。
カタログで複数の品目カテゴリ割当が許可されていない場合は、再割当ルールによって次の処理が行われます:
-
割当が存在する場合、品目の既存のカテゴリ割当を変更
-
割当が存在しない場合、品目の新規カテゴリ割当を作成
-
例: ルールによって、カタログAの既存のカテゴリYに品目A100が割り当てられます。ここで、A100は現在カテゴリXに割り当てられています。 カタログAでは、複数の品目カテゴリ割当は許可されません。 結果は次のとおりです:
-
品目A100は、カテゴリXからカテゴリYに再割当されます。
-
カタログAで複数の品目カテゴリ割当が許可されていた場合、品目A100はカテゴリYに新しく割り当てられ、カテゴリXにも割り当てられたままになります。
-
-
戻り値としての変数および式を使用したカタログ・カテゴリの割当て
SyncCatalogCategory(Expression1, Expression2, Previous())
ここで:Expression1
- カタログ・コードを返しますExpression2
- カテゴリ・コードを返しますPrevious()
- 更新する必要がある前のカテゴリ割当行を返します
-
SyncCatalogCategory(Expression1)
:Expression1
によって返されるカタログのデフォルト・カテゴリに品目を割り当てることで、新しいカタログ・カテゴリ割当てを作成します。 SyncCatalogCategory(Expression1, Expression2)
:Expression1
およびExpression2
によって返されるカタログおよびカテゴリに品目をそれぞれ割り当てて、新しいカテゴリ割当てを作成します。SyncCatalogCategory(Expression1, Expression2, Previous())
: カテゴリ割当行をPrevious
からExpression2
に再割当てします。Previous()
の式がnullと評価された場合、新しいカテゴリ割当て行が作成されます。
- カタログ割当ルールでは、既存のカタログ割当は削除されません。
- 単一行属性と複数行属性もサポートされています
- 例1: 品目には、コードがA1から導出されたカタログと、コードがA2から導出されたカテゴリが割り当てられます。 これは新しいカタログ・カテゴリ割当です。
SyncCatalogCategory([ITEM].[AG1].[A1], [ITEM].[AG1].[A2])
- 例2 : 連結の使用:
SyncCatalogCategory([ITEM].[AG1].[A1], [ITEM].[AG1].[B1]+"_"+[ITEM].[AG1].[B2])
- 例3 : 他の関数を使用します:
SyncCatalogCategory(getCustomObjectValue("Catalog_obj", "CatalogCode", "Target_Market", [Item].[Market_Spec].[TM]), InvokeWebservice("Cat_API", [Item].[AG].[C]))
SyncCatalogCategory(InvokeRestGet("CAT_REST", toMap("q", "ItemNumber=AS544"), "CATS[0].CLG_CODE", ) , subString( [Item].[AG].[C], 2, 4) )
- 例4: 既存のカテゴリ割当を更新します。
Previous()
関数から返されるカテゴリ・コードは、更新する必要がある既存のカテゴリ割当てを識別するために使用されます。Previous()
関数によって返される値がNullの場合、ルールは新しいカテゴリ割当てを作成します。SyncCatalogCategory([ITEM].[Catalog_Details].[Catalog_Code] , [ITEM].[Catalog_Details].[Category_Code], Previous([ITEM].[Catalog_Details].[Category_Code]))
カタログおよびカテゴリ検証ルール
属性値に基づいてカタログまたはカテゴリの割当を検証したり、他のカタログまたは組織割当への割当を検証する検証ルールを定義できます。
次の表に、品目ルールの例をまとめます:
-
衣服を表す品目の品目クラスに関連付けられているルール・セットで定義されます。
-
カタログ
LadiesWear
のカテゴリSummer
に品目が割り当てられているかどうかをテスト -
テストの結果がtrueで、品目が指定のカテゴリにある場合は、その品目がカタログ
Kids
のカテゴリSummer
にも割り当てられていないことを確認
フィールド |
値 |
---|---|
名前 |
カタログ割当の検証 |
説明 |
カタログ割当の検証 |
重大度 |
否認 |
If式 |
|
検証式 |
|
ユーザー・メッセージ |
レディース・ウェア製品はカタログに割り当てられません。 |
検証ルールを作成してカタログ・カテゴリ割当を検証する場合、assignedToCatalog( )関数のカテゴリ引数に変数および式を使用できます。 これらの式を使用して、ルールはカテゴリ・コードを導出し、品目がカテゴリに割り当てられているかどうかを検証します。 カスタム・オブジェクトまたはサービスから値を取得する属性または関数を、関数のカテゴリ引数として渡すこともできます。
たとえば、assignedToCatalog(Catalog[Channel_Auto], [Item].[Category_Info].[Cat_Code])です。 この関数は、属性からカテゴリ・コードを動的に導出して検証を実行します。
Substring、Decodeなどの文字列関数を使用して、関数内でカテゴリ・コードを返すことができます。 関数のcatalog引数にカタログ・コードを指定する必要があります。 catalog引数に変数は使用できません。