Product configuration models overview

This article defines terms and concepts that are relevant to product configuration models. Product configuration models let you build a generic product structure that can be used to configure many product variants for a single product.

Product configuration models are created to represent a generic product structure. After you've set up a product configuration model, you can configure a distinct product variant that has a unique bill of materials (BOM) and a unique route. Product configuration models use both declarative constraints and imperative calculations to handle the relations and limitations between different product variants. You can configure items on sales orders, sales quotations, purchase orders, and production orders. The following table describes the table constraint–based terms and concepts.

Components Components are the main building blocks of a product configuration model. Components are displayed in a tree structure on the Constraint-based product configuration model details page. Components can contain the following elements:
  • Attributes
  • Constraints
  • Calculations
  • Subcomponents
  • User requirements
  • BOM lines
  • Route operations
Attributes Attributes describe all the features of the product configuration model. You can use attributes to specify the features that can be selected when a distinct product is configured. Attributes are used in constraints and conditions. When attributes are created and added to a product configuration model, the related attribute types are referenced. A default value can be set for an attribute. The default value is used in the configuration user interface (UI) when the product configuration model is configured. You can specify that an attribute is mandatory, read-only, or hidden.
  • Mandatory – A value must be set for the attribute when the product is configured.
  • Read-only – The attribute value is displayed during a configuration session, but it can't be changed.
  • Hidden – The attribute value is included in constraints and conditions, but isn't displayed during a configuration session.
You can also specify a condition for attributes. If the condition is met, a value must be entered for the mandatory attribute. Conditions are expressions that must be met for attributes, BOM lines, and route operations to be included in a product configuration model. Any attribute that is referenced in a condition becomes mandatory. We recommend that you select attributes as mandatory on the Attributes tab. This can make it easier to identify mandatory attributes. Attribute values are an important part of reusing configurations. The system uses attribute values to determine whether a configuration exists that matches the selections that a user made during a configuration session.
Attribute types Attribute types specify the set of data types for attributes that are used in a product configuration model. The following attribute types are used:
  • Integer with or without a range
  • Decimal
  • Text with or without a fixed list
  • Boolean
If the attribute type is Boolean, Integer with a range, or Text with a fixed list, the set of values is available when a product configuration model is set up. Note: The Product configuration solver recognizes only the following attribute types: Boolean, Text with a fixed list, and Integer with a range. Therefore, only these attribute types can be used in expression constraints and conditions.
Constraints Constraints describe the restrictions of the product model configuration. Constraints are used to guarantee that only valid values are selected when a product is being configured. Constraints can be either expression constraints or table constraints:
  • Expression constraints can be used only for the component that they are tied to. The expression constraints for a component can reference attributes of the component's subcomponents. The Product configuration solver is used to solve the constraints, and you must use the solver syntax when you write the constraints. For more information, see the article link about expression constraints and table constraints.
  • Table constraints must be defined before they can be applied to a component in a product configuration model. Table constraints can be either user-defined or system-defined. A user-defined table constraint is a type of matrix that can be used to describe the set of combinations for the attribute values that are defined by attribute types. For example, if speakers are produced, the matrix for a user-defined table constraint might have columns for the speaker finish and grill.
Example Speakers are available in four finishes: Black, Oak, Rosewood, and White. The speakers can have one of three front grills: Black, Metal, or White. The Black finish is available for all grills, but the other finishes are limited to specific grills. The following table shows an example of the information that is displayed on the Allowed combinations tab on the Edit table constraint page.
Cabinet finish Front grill
Black Black
Black Metal
Black White
Oak Black
Rosewood White
White Black
White White
A system-defined table constraint represents a mapping between an attribute type and a field in a Supply Chain Management table. A system-defined table constraint dynamically links the attribute type to the field. The link enables the attribute in a product configuration model to reflect the data of the field in the Supply Chain Management table.
Calculations Calculations represent a supplement to constraints. You can use a calculation to perform arithmetic operations on attributes of the Decimal and Integer types, or logical operations that involve attributes of the Text with a fixed list and Boolean types. A calculation has a target attribute that will hold the result of the calculation expression. The calculation expression is built by using the expression editor.
Subcomponents Subcomponents reflect the tree structure of the product configuration model. You can use subcomponents to build the structure of the product configuration model. Subcomponents reference existing components. Therefore, subcomponents encourage the reuse of components in multiple product configuration models. On the BOM line details page for a subcomponent, you can select a distinct value for the subcomponent. Alternatively, you can select an attribute that the value is selected for when the product configuration model is set up. To include a product as a component or subcomponent, you must specify the following information on the Create product page when you create the product:
  • In the Product type field, select Item.
  • In the Product subtype field, select Product master.
  • In the Configuration technology field, select Constraint-based configuration.
You can view whether a released product can be used as a component or subcomponent on the General tab of the Released product details page. If Constraint-based configuration is selected in the Configuration technology field, the product can be used as a component or subcomponent. You can hide subcomponents so that they aren't displayed to the user during a configuration session. Attributes, subcomponents, and user requirements that are related to the subcomponent are also hidden.
User requirements User requirements represent an abstraction between user requirements and specific components and attributes. You can't map a user requirement to an item. For example, a customer is shopping for a home theater system. The sales representative might ask about the size of the room where the customer plans to install the system, to determine how many watts are required. In this example, the room size can be a user requirement that helps determine the appropriate attribute value for a specific component. You can hide user requirements so that they aren't displayed to the user during a configuration session. Attributes, subcomponents, and user requirements that are related to the user requirement are also hidden. You can write a condition to control whether a user requirement can be hidden. You must write the condition by using Optimization Modeling Language (OML) syntax.
BOM lines BOM lines represent the individual materials of the components in the product configuration model. On the BOM line details page, all items are available for selection. A condition can be added to the BOM line, so that the BOM lines that are selected for a distinct product variant can vary, based on the user's selection when the product configuration model is set up. Conditions are expressions that must be met for attributes, BOM lines, and route operations to be included in a product configuration model. On the BOM line details page, you can select a distinct value. Alternatively, you can map to an attribute that the value is selected for when the product configuration model is set up.
Route operations On the Route operation details page, you can select a distinct value. Alternatively, you can map to an attribute that the value is selected for when the product configuration model is set up. Conditions are written like expression constraints. Conditions are expressions that must be met for attributes, BOM lines, and route operations to be included in a product configuration model.