User calculated attributes
User calculated attributes are user-defined objects which extend the system entities.
They're defined like formulas.
When the value of a calculated attribute is requested, it's calculated "on the fly", in real-time.
Note
Calculated attribute formulas are compiled to native executable format.
Their calculation speed is very similar to the speed of the system-defined calculated attributes.
Example 1 - Get default payment term days
Suppose that in a sales order, you want to display the customers default payment term (in days).
You can define the following calculated attribute:
No | Operation | Param1 | Param2 | Param3 |
---|---|---|---|---|
10 | GETOBJVALUE | REF:Customer | ATTRIB:DefaultPaymentTermDays |
Explanation:
- **GETOBJVALUE ** - gets information from a related entity. The related entity is specified in Param1.
The desired information is specified in Param2. - Line number 10 is the only line in the calculated attribute
- The return value is the value of the attribute DefaultPaymentTermDays in the customer entity.
Example 2 - Complex filter and summation
The following calculated attribute sums all sales order lines, the product of which:
- has a user data attribute called 'CustPropPrj', equal to '500'
- has a name containing the word 'Tool'
No | Operation | Param1 | Param2 | Param3 |
---|---|---|---|---|
10 | SUM | EXP:20 | ATTRIB:LineAmount | |
20 | FILTER | CHILD:Lines | EXP:30 | |
30 | IN | ATTRIB:Product | EXP:40 | |
40 | FILTER | QUERY:Gen_Products | EXP:50 | |
50 | AND | EXP:60 | EXP:70 | |
60 | EQUALS | ATTRIB:CustPropPrj | CONST:500 | |
70 | LIKE | ATTRIB:Name | CONST:'Tool' |
Explanation:
- Line 10: Iterates through the data set on Line 20 (EXP:20); SUMs the attribute LineAmount.
- Line 20: Filters the lines subset with the filter specified in Line 30 (EXP:30).
- Line 30: Creates a filter which is satisfied only by products in the query on Line 40 (EXP:40).
- Line 40: Creates a query, which filters the products with the condition specified on Line 50.
- Line 50: Specifies that the condition is comprised of two conditions linked with AND.
- Line 60: Specifies that the first condition is the value of an attribute called 'CustPropPrj' should be '500'.
- Line 70: Specifies that the second condition is that the name of the product should contain 'Tool'.
Attributes can calculate complicated formulas, query the database and get related values.