Bookshelf Home | Contents | Index | Search | PDF |
Product Administration Guide > Configuration Rule Assembly Language >
Attribute Operators
Rule Assembly Language includes special operators for doing comparisons and particular math operations on attribute values. These operators extract information about the attributes of all the products that have been selected in a relationship. For example, you can determine the number of relationship items that have been selected that have an attribute value greater than a specified amount.
Attribute Comparison Operators
These operators return the number of relationship items that have been selected for which the comparison is true. For example, you can use
numAttr>
to find out how many items with Length greater than 5 feet in a relationship have been selected.The operators count all the items selected from the relationship, not the number of different items. In the preceding example, if the user selects two of the same item and enters a length greater than 5 feet, the
numAttr>
operator will return 2.The operators take two arguments, A and B. Argument A is the full path from the root of the product to the attribute. Argument B is the comparison value. This value can be of type Integer, Number, Date, or Time. Type DateTime is not supported. Argument B can also be a sub-expression that resolves to one of these data types.
In addition, for the
numAttr==
andnumAttr!=
operators, argument B can be a text string.Use attribute comparison operators to create subexpressions that form conditions. Attribute comparison operators are shown in Table 42.
You can use the numAttr operators to create "any/all" conditions in rules involving attributes:
- You create the condition "any instance of products in R has attribute A=X" as follows:
>=(numAttr==(@.[R].[A], X), 1)
- You create the condition "all instances of products in R have attribute A=X" as follows:
==(numAttr==(@.[R].[A], X), @.[R])
For example, you want to write the rule, when all the instances of products in P have attribute A=X then exclude any instance of products in Q that have attribute B =Y. You would write this rule as follows:
excl(==(numAttr==(@.[P].[A], X), @[P]),
>=(numAttr(==(@.[Q].[B], Y), 1)))
Attribute Arithmetic Operators
The arithmetic operators allow you to determine the maximum and minimum value of an attribute for items that have been selected in a relationship. You can also sum the values of the attributes.
The operators take one argument, which is the path to the attribute. Attributes can be of type Number, Integer, Date, or Time. DateTime and Text are not supported. If the type is Date or Time,
minAttr
returns the time or date closest to the present. ThemaxAttr
operator, returns the time or date furthest from the present.Use attribute arithmetic operators to create subexpressions that form conditions. Attribute arithmetic operators are shown in Table 43.
Bookshelf Home | Contents | Index | Search | PDF |
Product Administration Guide Published: 23 June 2003 |