Representing Calculated Fields in XML
Calculated fields are defined as regular columns in a field element with an additional attribute. Calculated fields that rely only on columns of the same table appear in jdbcTable for that table, as well as in the join tree. Calculated fields that rely on columns from different tables that are joined appear only in the join tree.
The following example shows the XML for a calculated expression in the accounts table. Because it references only the columns of accounts, it appears in that table and in the join tree.
<jdbcTable datasourceId="SugarCRMDataSource" id="accounts" tableName="accounts"> <fieldList> ... <field dataSetExpression="concat( billing_address_city, ', ', billing_address_state )" id="city_and_state" type="java.lang.String"/> ... </fieldlist></jdbcTable>...<jdbcTable datasourceId="SugarCRMDataSource" id="JoinTree_1" tableName="anything"> <fieldList> ... <field dataSetExpression="concat( accounts.billing_address_city, ', ', accounts.billing_address_state )" id="accounts.city_and_state" type="java.lang.String"/> ... </fieldlist></jdbcTable>[/code] |
The attributes of the field element have a different meaning when defining a calculated field:
| • | dataSetExpression – Expression that calculates a value based on other columns. The syntax for the expression, including how to reference columns, is documented in The DomEL Syntax. |
| • | id – User-defined name of the calculated field. The format of the id is dependent on how the calculated field appears in the design file: |
| 1. | If the expression references columns in the same table: |
| a. | The field appears in the table and the id is a simple column name. |
| b. | The field also appears in a join tree that uses the table, the id has the form table_ID.field_name. |
| 2. | When the expression references columns in different tables, the field appears only in the join tree of those tables, and the id has the form jointree_ID.field_name. |
| 3. | When the expression computes a constant value. The field appears in a table named Constant, and the id is a simple column name. Constant fields are further explained below. |
| • | type – The Java type of the value calculated by the expression, for example java.lang.String. This type must be compatible with the result of the DomEL expression and among the JDBC-compatible types listed in Representing Tables in XML. |
A special case of a calculated field occurs when the expression does not reference any column names. The calculated field always has the same value and is said to be a constant. In the Domain Designer, constant fields are automatically grouped in a table named Constant and may be used in other calculated fields, filters, or even as an item. Because constant fields are not dependent on any column values, they may be used in any join tree and exposed to the user along with the items from any join tree. When editing a design file, you must treat constant calculated fields in the same way.
Recommended Comments
There are no comments to display.