This chapter provides an overview of submodels, lists the common elements and discusses how to:
Maintain configuration models.
Test configuration models.
Note. Configuration models determine the order in which the system processes configuration rules. While each rule is a grammatical statement that performs an action or operation, the model's tree structure dictates the context of the statement, that is, what other operations it affects in the overall configuration.
See Also
You can embed a model within a model, creating a submodel. Submodels can be used to create common configuration logic trees that can be shared between models or to create looping logic within a model. To create looping logic within a model, the submodel can be used by creating a self-reference. This functionality replaces the Jump Back feature that was provided in earlier releases. Here's an example of a looping logic model:
Model A (The main model):
RULE: A1 - A rule that performs some action.
RULE: A2 - A rule that performs some action.
SUBMODEL: B - Is subordinate to RULE: A2 and calls Model B.
Model B (The looping logic submodel to Model A):
RULE: B1 - A rule that adds to a counter, say the global variable, G-COUNT = G-COUNT + 1.
RULE: B2 - A rule that performs some action with a condition that tests the global variable, G-COUNT, say G-COUNT <= 5.
SUBMODEL: B - Is subordinate to RULE: B2 and calls itself, Model B.
The system produces the following sequence of results:
The main model A calls the submodel B, which loops by calling itself five times until the global variable, G-COUNT is greater than five.
Node |
Refers to a level in the model tree (root, child, grandchild, and so forth). |
Sibling Node, Child Node |
Denotes node position. Sibling nodes are relative to each other in that they share the same level; child nodes are subordinate to the previous node. Both node types can be true or false (the condition is evaluated as true or false):
|
Branch |
Identifies a node that contains other subordinate (child) nodes; diverts rule processing to include its nodes before processing the remaining rules at the same node level. |
To maintain configuration models, use the Model component (CP_TREE_MAIN_GBL). This section discusses how to maintain configuration models.
Page Name |
Definition Name |
Navigation |
Usage |
CP_TREE_MAIN |
|
Create, maintain, or view the model structure for Product Configurator rules. |
|
CP_TREE_ADD_SEC |
Select a node, and click the Add True Child button or link on the Model Builder page. |
Add a rule or submodel that executes if the current rule is evaluated to have a true condition, in a subordinate position to the selected node, to a configuration model definition. |
|
CP_TREE_ADD_SEC |
Select a node, and click the Add False Child button or link on the Model Builder page. |
Add a rule or submodel that executes if the current rule is evaluated to have a false condition, in a subordinate position to the selected node, to a configuration model definition. |
|
CP_TREE_ADD_SEC |
Select a node, and click the Add Sibling button or link on the Model Builder page. |
Add a rule or submodel, at the same level as the selected node, to a configuration model definition. |
|
CP_TREE_SELECT_INQ |
Configuration Modeler, Maintain Models, Review Models, Review Models - Search |
Access all of the models that a specific configuration rule is on. |
|
CP_TREE_SELECT_IN2 |
Select a rule, and click the Search button on the Review Models - Search page. |
View a list of models and key information that is based on the criteria that you enter on the Selective Model - Search page. Click a linked model ID to access the Model Builder page, where you can update the model definition. |
Access the Model page (Configuration Modeler, Maintain Models, Model).
To create a configuration model:
Select the setID and functional area and enter the model name.
The system uses the model name as the first entry in the model's tree structure.
Add configuration rules and submodels in their logical processing sequence for the configuration.
When there is a branch in the processing logic, create a child node for the branch.
Use the Add/Update button to view, modify, or add a configuration rule.
Select an existing node to display and enable the Menu links.
Note. The system displays only the links that represent valid model builder actions for the selected node. When you select a node and click a Menu link, the system places its associated image next to the node in the model to identify it in the model tree structure.
Add Sibling |
You can add a new sibling node on the same level as the selected node; it is inserted after the selected node. Click this link or button to access the Model - Add Sibling page, where you can select, modify, or add a rule or submodel. |
Add True Child |
A true child node processes when the parent rule's condition is true. You can add a new true child node on the next level of the selected node; it is inserted as the first true child. Click this link or button to access the Model - Add True Child page, where you can select, modify, or add a rule or submodel. |
Add False Child |
A false child processes when the parent's rule condition is false. You can add a new false child node on the next level of the selected node; it is inserted as the first false child. Click this link or button to access the Model - Add False Child page, where you can select, modify, or add a rule or submodel. |
Delete |
Deletes a node. If the selected node is a branch, all the children under the branch are also deleted. |
Move Up |
Moves the selected node (which cannot be the first node in its level) up relative to its true or false sibling nodes—in other words, you cannot move a false sibling node relative to a true sibling node. |
Move Down |
Moves the selected node (which cannot be the last node in its level) down relative to its true or false sibling nodes. |
The following buttons further identify the node:
|
Indicates a closed branch. Click to expand and view the contents of the branch. |
|
Indicates an open branch. Click to close the branch. |
|
Indicates a node with no children. |
This section discusses how to:
Select configuration models for testing.
Review configuration model test results.
Page Name |
Definition Name |
Navigation |
Usage |
Test Model - Input |
CP_TREE_TEST_IN |
Configuration Modeler, Maintain Models, Test Models, Test Model - Input |
Enter the information for the configuration model that you want to test and initiate the test configuration process. |
CP_DYNAMIC_PANEL |
Click the Configure button on the Test Model - Input page |
A configuration session is initiated for the model. |
|
Test Model - Output |
CP_TREE_TEST_OUT |
Configuration Modeler, Maintain Models, Test Models, Test Model - Output |
Review the results from the configuration model test. |
Access the Test Model - Input page (Configuration Modeler, Maintain Models, Test Models, Test Model - Input).
Define Input Data
Functional Area |
Select the functional area that contains the model that you wish to test. Values are: Both, Distribution, and Production. Distribution appears as the default which allows you to enter a Distribution Model to test. If Production is selected, then you can enter a Production Model to test. If Both is selected, then you must enter both a Distribution model and a Production model to test together, a complete manufactured configuration. |
Configuration Type |
Select whether you want to configure at the item or product level. Values are: Product or Item. Product appears as the default. |
Inventory Business Unit |
Select the inventory business unit for your configuration test. |
Processing Date |
Enter the date that you want to use as the processing date for your configuration test. The default is today's date. This date will determine which rules and matrices are launched during your configuration based on their effective dates. |
Currency Code |
Select the transactional currency code for your configuration test. |
Base Currency |
Select the base currency code for your configuration test. |
Launch Configuration
Configure |
Click the Configure button to test the models that you specified in the input data selection criteria. After you click the Configure button a configuration session will be launched based on the specified input data. After you have finished the configuration session, the Test Models - Output page will appear with the results from the test. |
Access the Test Models - Output page (Configuration Modeler, Maintain Models, Test Models, Test Model - Output).
This page is dynamic and the fields and sections that appear on this page are dependant on the models you are testing.
If you are testing a distribution model these sections appear:
Configuration Components: A list of the components that make up the configuration. This list includes configured components, purchased components, and kit components in addition to the main high-level configured item or product itself.
Option Information: A list of the options and their associated values within a configuration.
Configuration Details: A list of the configuration details that have been established with print codes within a configuration.
If you are testing production models these sections appear:
Component List: A list of the dynamic manufacturing components (BOM) for a configuration.
Operation List: A list of the dynamic manufacturing operations (routing) for a configuration.
Custom Operation Times: A list of the dynamic operation times (routing times) for a configuration.
The Product Configuration Trace section will always appear whether you are testing a distribution model or a production model. In addition, to assist with model testing the Product Configuration Trace section will always appear regardless of the state of the Start and End Trace rules in the configuration models.