About system-defined and user-defined table constraints


This content is archived and is not being updated. For the latest documentation, see Microsoft Dynamics 365 product documentation. For the latest release plans, see Dynamics 365 and Microsoft Power Platform release plans.

Applies To: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

You can declare two types of constraints in a product configuration model.

  • Expression constraint – Use to express relations between attributes to make sure that only compatible values can be selected during product configuration. For more information, see Create an expression constraint for a product component.

  • Table constraint – Create a table that defines all of the combinations that are allowed for a specified set of attributes. Two types of table constraints are available: user-defined table constraints and system-defined table constraints.

This topic describes table constraints that are user-defined and system-defined for components in a product configuration model.

User-defined table constraints

A user-defined table constraint is a type of matrix that is used to describe the combinations for the attribute values that are defined by attribute types.

For example, if you produce televisions, you could include columns for the TV size and TV type in the user-defined table constraint. Plasma televisions are only available in 42 and 50 inch screen sizes. Projection televisions are available only in 50 or 60 inch screen sizes. The following table shows the information that is displayed on the Allowed combinations tab in the Edit table constraint form.

TV type

TV size









User-defined table constraints are defined by static table input that functions the same way as an expression constraint. When you use a user-defined table constraint, the advantage is that tables are often easier to create, understand, and maintain than long expression constraints.

System-defined table constraints

A system-defined table constraint creates a dynamic mapping between an attribute in a product configuration model and a field in a Microsoft Dynamics AX 2012 table. The product configuration model uses the mapping and then reflects the data in the Microsoft Dynamics AX 2012 table. System-defined table constraints bind columns of a table to attributes for components in a product model. The result is a dynamic constraint, because the table can be modified, for example, by other Microsoft Dynamics AX 2012 modules or maintained by partners.

When you create a system-defined table constraint, you select a table, define the query to use, and then associate attribute types to the fields on the selected table. The types of fields must match the types of attribute types. However, it is not required to match such values as enumeration values and integer ranges. The attribute type values are replaced by the values in the field from the selected table. After you create this type of table constraint, you can add the constraint to a component, and then map the attribute to the column names in the table constraint.

See also

Create a table constraint

Add a table constraint to a component

About reusing configurations

About product configuration models