品目ルール複数行属性グループ機能
複数行属性グループの特定の行の値を参照するには、次のいずれかの関数を使用します。
品目区分に固有のルール・セットを作成するには、ルール・セットの作成時にその品目区分に割り当てます。 そのルール・セットは、その品目区分を親または祖先として持つエンティティごとにアクティブになります。 品目区分に関連付けられた他の属性にはアクセスできません。
m
行数があり、MR_AG2にはn
行数があります:このルールはm*n
回実行されます。 ルールを2つのルールに分割して、複数行属性グループへの参照を区切ることで、実行回数をm+n
に減らすことができます。 loopSum
構文:
loopSum([Entity name].[multirow Attribute Group Name].[Attribute Name])
loopSum関数は、1つの数値部分式を引数として取ります。 複数行属性グループごとに副式を実行し、結果の合計をコンピュートします。
例
この例では、パーセント属性のすべての行の値の合計を100以外の値にすることはできません。
Severity: Reject
If Expression: (loopSum([Item].[Composition].[Percentage])) != 100
conditionalLoopSum
構文:
conditionalLoopSum(boolean_expression, [Entity name].[multirow AttributeGroupName].[Attribute Name])
conditionalLoopSum関数は、2つの副式引数を取ります。 最初の引数はブール式である必要があり、2番目の引数は数値のサブ式です。 この関数は、複数行ごとにブール型のサブ式を実行し、ブール値がtrueと評価された場合は、その行の数値のサブ式を計算します。 この関数は、計算された数値式の合計を返します。
例
この例では、次の行を含むForecast
という名前の複数行属性グループがあるとします。
顧客 |
事業所 |
所要数量 |
---|---|---|
ABC |
シアトル |
20 |
XYZ |
シアトル |
30 |
ABC |
ボストン |
25 |
次の例では、対応する事業所がシアトルである必須数量の値を合計します:
conditionalLoopSum([Item].[Forecast].[Location] == "Seattle", [Item].[Forecast].[Required Qty])
isMrRowDeleted
検証ルールまたは割当ルールでisMrRowDeleted関数を使用して、複数行拡張可能フレックスフィールド(EFF)属性グループから行が削除されたかどうかを検証できます。 たとえば、検証ルールのisMrRowDeleted関数を使用して行が削除されたときに、変更オーダーの承認を強制できます。 この機能は、品目、品目改訂またはサプライヤEFFの複数行属性グループに使用できます。
構文:
isMrRowDeleted(<Mutli_Row_EFF_Attribute_Group_Name>)
複数行EFFグループの行が削除された場合、trueを返します。 それ以外の場合は、falseを返します。
次に、isMrRowDeleted関数を使用した検証ルール式の例を示します。
isMRRowDeleted([Item].[Material Composition]) OR changed([Item].[Material Composition].[Percentage])
isMrRowDeleted関数と変更された関数を使用して、複数行属性に対する変更または削除操作を検証できます。