Configured products are found across many diverse industry segments ranging from machinery and equipment to automotive products and high tech or electrical products to furniture and more. In many cases, the configuration of finished goods is very simple with limited choices and attributes that affect the final product. In other cases, the configuration can be extremely complex with certain selections eliminating the available of other options or values. And in extreme cases there are very, very complex calculations and formulas used to determine material requirements and other factors.
For example, consider how the configuration of a large warehouse racking system’s final configuration and materials might differ if it only has a few racks and is designed to hold relatively light products like foam or paper compared to a racking system that has 6 or more levels and designed to hold metal products or liquids. Also consider the inter-dependent nature of some values and options such as the availability of a power supply for different types of equipment. If you select one thing then another may not be available.
Epicor’s Product Configurator allows you to manage your highly configurable products through an easy-to-use question and answer format. Epicor for Industrial Machinery allows you to build your own set of rules for each custom feature/option. The rules you apply can be used to ensure an accurate bill of material (BOM) is created during quote and order entry. Web deployable, the Epicor Product Configurator offers added flexibility with the Epicor Storefront. Other features included in the Configurator are calculated pricing, inclusion of configured parts in MRP processing and part number generation.
Configurator Rules Overview
A few ERP systems provide a rules-based product configurator module. Epicor ERP is one of them. Below is an overview of the Product Configurator module with tips on how to leverage the extensive use of rules you define during the initial product configurator design phase:
- Document Rules, defined in the Configurator Entry > Document Rules sheets. Document rules allow you to automatically update source documents (quotes, sales orders, job orders, purchase orders, or demand orders) that initiate production of a configured item.
- Method Rules, defined in the Configurator Rule Entry > Rules Set sheet. When you define method rules, you create a Keep Component When rule clause that the Epicor application uses when determining the specific material content for a configuration; this designates what components and operations should be included when the configured part is manufactured.
Note: For more details, refer to Method Rules Definition.
Use of Boolean Logic – How Rules Work
When you define individual rules for use in Configurator processing, you specify the Boolean logic employed in the rule. Boolean logic presents a statement that must be either true or false.
- If A is true and B is true, then choose C
- If A is true and B is false, then C is not chosen.
- If A is false and B is true, then C is not chosen.
- If A is false and B is false, then C is not chosen.
Suppose you are a manufacturer of kitchen appliances, one of which is a table-top mixer. These come in various motor sizes, depending on the end use of the item. One of the options might be to include a dough hook, used for kneading bread dough. Since this requires a heavy-duty motor, selecting the dough hook attachment causes the Configurator to select the heavy-duty motor, whereas selects the medium duty motor. So, the Keep When rule looks something like this:
- “Keep “Heavy Duty motor” when Doughhook = true
- “Keep “Medium Duty motor” when Doughhook = false
How is the Configurator kept from selecting the other motor? Simply by using the opposite rule:
- “Keep “Heavy Duty motor” when (dough = “Bread Dough” or dough = “pastry crust” or heavyingredients = true).
- “Keep “Medium Duty motor” when (not (dough = “Bread Dough” or dough = “pastry crust” or heavyingredients = true)).
- A better way of accomplishing this is to define a Calculation variable – Heavy = (dough = “Bread Dough” or dough = “pastry crust” or heavyingredients = true)
Now the quote will contain one of the two motors, depending on whether the user wants a dough hook attachment. The Configurator works on an exception basis – if no rule is attached to an item, it is always selected. So, it is only those items that are “conditional” that would require selection rules. What if there is more than one reason to select a component or subassembly? In the case of the table-top mixer, the heavy duty motor may be required for a number of reasons:
- kneading bread dough
- making pastry crust
- mixing heavy ingredients
It is necessary to verify the heavy-duty motor is selected if any of the above is true, so the following rule would be defined:
- “Keep “Heavy Duty motor” when heavy = true
- “Keep “Medium Duty motor” when heavy = false
If any one of the above is true, the heavy-duty motor is selected. The Epicor application selects medium-duty motor only if none of the above is true. In each of the above examples, it is not necessary for the user to choose the heavy-duty motor; the Configurator selects it automatically based on other selections.
Document and Method rules consist of Rule Conditions and associated Rule Actions. For each Document rule, you can enter a single rule condition, but you can associate multiple actions with the rule condition. For each Method rule, you can define a rule set that can contain one or more rules; each rule contains a condition and one or more actions.
Rule Set (Method Rules Only)
Method rules you define in the Configurator Rule Entry > Rule Sets sheet consist of a rule set that can contain one or more rules; each rule contains a condition and one or more actions. Besides acting as a wrapper for all the rules and actions, the rule set also holds the Keep When condition, which applies to all of the associated rules. You can only add one Keep When condition per rule set; this prevents entry of more than one rule with a Keep When condition. Only one rule set is allowed per element in the BOM.
Note: For detailed information on Method rules and Keep When conditions, refer to the Method Rules Definition, Rule Sets, Conditions and Actions, and Keep When topic.
A rule contains code expressions that denote the specific conditions that must be met to perform the associated Actions, on which all associated rule actions depend. For example, when used in Method rules, this is the actual conditional rules code applied against the material selected in the method of manufacture for the parent part
- If the rule condition is met (rule conditions are True) during an actual configuration session, the Epicor application executes the associated actions.
- If the rule condition is not met (rule conditions are False), the Epicor application does not execute the associated actions.
Example: If you select ‘The target entity is equal to Specified value’ rule condition, you have the option to decide whether you want this rule condition to apply to Quotes, Purchase Orders, or Jobs. If you select the ‘Column Specified of target entity is equal to Specified value’ rule condition, you can select the level at which this condition will apply (Quotes, Purchase Orders, or Jobs) as well as a column it will apply against in these programs.
A rule action is the actual action the Epicor application performs if the conditions of the rule are met during an actual configuration session. You can assign multiple rule actions per rule. Several types of actions are available for use, dependent on the type of rule you are creating:
- Execute Expression (Set Field) – Changing an entity field value for applicable entities, or for the current entity, using an expression or constant you define in the Code Editor.
- Set Field – Returns values for operations, operation details, and materials using system defined rule functions; the specific rule functions available depend on what type of record you select in the tree display in Configuration Rule Entry.
- Execute Expression – Use this rule action to invoke the Code Editor and define a C# conditional code expression. When you create this code, you can select user defined and system functions (such as Get Smart String) for use within the expression.
Note: You can create and assign multiple rule actions per rule, and can designate the processing order of rule actions when defined.
Explore the Solution Center and Demo Here.