Product Configuration
The need to configure a product in order to meet special requirements is rapidly becoming the rule rather than the exception both in business-to-business and business-to-consumer relationships. For a manufacturer, the ability to support configure-to-order scenarios represents an opportunity to more carefully tend to customers’ needs as well as reduce capital tied to inventory by stocking semi-finished goods in the form of generic components rather than finished products.
A successful move from a manufacture-to-stock to configure-to-order setup requires careful analysis of the product structures, identification of product families, and componentization. Understanding the product interfaces and designing for reusability is key in reducing the number of parts and minimizing goods in process.
There are several product configuration modeling principles, such as rule-based, dimension-based, and constraint-based. Studies show that the constraint-based methodology can reduce the number of code lines in models by about 50% compared to other modeling principles and thus result in a lower total cost of ownership (TCO). By moving from a rule-based model based on X++ code to a constraint-based model using Microsoft Solver Foundation, you are no longer required to have a developer license to maintain product models in Microsoft Dynamics® AX.
PRODUCT CONFIGURATION
The industrialization period has led to great achievements in producing high-quality and feature-rich products at affordable prices. The economies of scale has made it possible for most people in the industrialized world to buy cars, TVs, household appliances, and other goods that most of us consider to be a necessary part of our everyday life.
With many products becoming commodities, a need to differentiate has arisen. The immediate response by manufacturers to this challenge has been to create variants of each product to provide customers more alternatives to choose from. This strategy has led to increased forecast challenges and an increase in inventory cost and unsold products that become obsolete.
Adopting a configure-to-order philosophy provides an opportunity to meet customer demand for unique products while reducing or eliminating obsolete inventory items. An immediate challenge that arises with a shift from a make-to-stock to a configure-to-order philosophy is to balance the need for short lead times with low inventory levels.
The key to success here is to carefully analyze the product portfolio and look for patterns both in product features and processes with the aim of identifying generic components that can be manufactured with the same equipment and be used in all variants.
With a user interface that provides a visual overview of the product configuration model structure and a declarative constraint syntax that does not have to be compiled, the new product configuration feature set makes it easier to get started for companies that want to support a configuration practice.
A product designer, without the support from a developer, can build a product configuration model, test it, and release it to the sales organization. This is described in the following sections.

BUILDING A PRODUCT CONFIGURATION MODEL

There are several approaches a user can take to build a product configuration model. One option is to follow a sequential flow and create all the reference data first—such as product masters, distinct products, and operational resources—and include them as components, bill of materials (BOM) lines, route operations, and other elements of the product configuration model. Alternatively, the user can select a more iterative approach by starting with creating the model and adding reference data as the need arises.
Components
A product configuration model consists of one or more components tied together through subcomponent relationships. Components are defined once and can be used many times in one or more product configuration models. The components are the main building blocks of a product configuration model and nearly all information regarding the model is related to them.
Attributes
Each component has one or more attributes that identify its properties. The attributes are what the users will have to choose from during the configuration process. Attributes control both inter- and intra-component relationships through inclusion in constraints. The attributes can be used to determine which physical parts the configured product shall consist of through the means of conditions applied to BOM lines. Actually, an attribute can control the property of a BOM line through a mapping mechanism. Similar functionality exists for route operations regarding both inclusion and property settings.
Expression constraints
Using a constraint-based product configuration model implies that some limitations exist when the user selects values for the various attributes. Such limitations can be implemented as expression constraints by using the Optimization Modeling Language (OML) recognized by the Microsoft Solver Foundation. Alternatively, a constraint can be implemented in the shape of a table constraint.
Table constraints
Table constraints in Microsoft Dynamics AX can be user-defined or system-defined.
A user-defined table constraint is built by the user by selecting a combination of attribute types to represent the columns of the table, and subsequently entering values from the domains of the selected attribute types to form the rows in the table constraint.
A system-defined table constraint is defined by selecting which Microsoft Dynamics AX table to use as a reference and selecting fields from this table to form the columns in the constraint. The rows of the table constraint are the rows of the Microsoft Dynamics AX table that are present at configuration time.
A table constraint is included in a product configuration model by referencing the table constraint definition and mapping the relevant attributes in the model to the columns in the table constraint.
Subcomponents
Subcomponents represent the nodes in the product configuration model structure. For each subcomponent relationship, a reference to a product master—with variant configuration technology set to constraint-based configuration—must be specified.
User requirements
A user requirement has all the constituents of a subcomponent. The only difference is that a user requirement is not bound to a product master. This has the practical effect that any BOM lines or route operation defined in the context of a user requirement will be collapsed into its parent component BOM structure or route. This behavior resembles that of a phantom BOM.
BOM lines
BOM lines are included to identify the manufacturing BOM for each component. A BOM line must reference an item and all item properties can be set to a fixed value or mapped to an attribute.
Route operations
Route operations are included to identify the manufacturing route. A route operation must reference a defined operation and all operation properties can be set to a fixed value. All properties except resource requirements can be mapped to an attribute rather than a value.

VALIDATING AND TESTING A PRODUCT CONFIGURATION MODEL

Validation of a product configuration model can take place on several levels in the model and thus cover varying scopes. The lowest level is for a single expression constraint and validation will typically be performed by the product designer to verify that the syntax of an expression is correct.
Similarly, a condition for a BOM line or a route operation can be validated in isolation.
Validation can also be done for a user-defined table constraint definition. In this case the user can verify that the values entered for each field are inside the domain of the corresponding attribute types.
Finally, validation can be done for a complete product configuration model to verify that the complete syntax is correct and all naming and modeling conventions have been respected.
Testing
Testing a model is similar to running an actual configuration session. It allows the user to walk through the configuration screens and verify that the model structure supports the configuration process. It can be verified that the attribute values are correct and that the attribute descriptions guide the user in selecting the proper values. Finally, upon completing a test session, the system will try to create the BOM and the route corresponding to the selected attribute values and will present an error if anything goes wrong.
The configuration screen
Navigation can be done by clicking Next > Next > Next or by clicking a component in the product configuration model tree.
FINALIZING A MODEL FOR CONFIGURATION
When a product configuration model is ready for use in configure-to-order scenarios, a version must be created, but there are also a number of options that can enhance the modeling experience.
User interface
The configuration user interface (UI) can be modified by introducing attribute groups in one or more subcomponents. Such a grouping can underline the relationships between certain attributes and help the configuration user identify the area of the product that is currently in focus.
Templates
One or more configuration templates can be created to either speed up the configuration process or promote certain attribute combinations. The latter case could be a response to a sales campaign that puts focus on a certain set of product features.
Translations
If the product is to be sold in different countries, translations can be created for all text appearing in the configuration UI. This includes both name and description fields, as well as attribute text values.
Versions
The final and most important step in the finalization process is to create a version for the product configuration model. The version represents the relationship between the product master, which can be selected for configuration on an order or quotation line, and the product configuration model. A version must be approved and activated before it can be used in a configuration session.

EXTENDING A PRODUCT CONFIGURATION MODEL THROUGH THE APPLICATION PROGRAMMING INTERFACE

A dedicated application programming interface (API) has been implemented to allow partners and others with a developer license to extend the capabilities of a product configuration model. The main purpose has been to establish a mechanism that allow partners and customer who use the existing Microsoft Dynamics AX Product Builder to migrate the code embedded in Product Builder models to the API, and thus allow them to migrate their models from Product Builder to product configuration. However, new partners and customers can also benefit from using the API to extend completely new product configuration models.
PCAdaptor class
The API is implemented using a set of PCAdaptor classes that expose the data structure of the product configuration models. An instance of the PCAdaptor class must be created for each model that will be extended. Upon completion of a configuration session, the system will check for an instance of this class and execute it if found.
Following is a flow diagram that outlines the process.

PRODUCT CONFIGURATION

Configuration of a product can be performed from the following places:
  • Sales order line
  • Sales quotation line
  • Purchase order line
  • Production order line
  • Item requirement line (project)
The purpose of the configuration is to create a distinct variant of the product that meets the customer’s requirement. A unique configuration ID is created for each new configuration, allowing for tracking through inventory.
Multiple site and intercompany
In the event that configuration is done at a different site or even in a different company than where the production will take place, the BOM and the route will be created for and placed at the supplier site in the supplying company. The variant will be released in both the supply and demand company.
SUMMARY
The new Product configuration feature set provides an intuitive user interface and simple declarative constraint syntax that allows a product designer to build his or her own product configuration models without assistance from a developer. In this way, manufacturers that want to move from a make-to-stock to a configure-to-order philosophy can quickly get started with this market approach.
Product configuration models are built with reusable components. Attributes, constraints, subcomponents, user requirements, BOM lines, and route operations are defined in the context of a component.
Through a configuration session, a user will create a unique product variant with a BOM and a route that matches the attribute selections.
Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you and your people to make business decisions with greater confidence. Microsoft Dynamics works like and with familiar Microsoft software, automating and streamlining financial, customer relationship and supply chain processes in a way that helps you drive business success.
U.S. and Canada Toll Free 1-888-477-7989
Worldwide +1-701-281-6500
www.microsoft.com/dynamics
CCAX2012BV068
© 2011 Microsoft Corporation