This chapter covers the following topics:
This section describes Model structure settings and characteristics that are available only when using the FCE. It includes the following sections:
For background information about the General area of the Workbench, see the Oracle Configurator Developer User's Guide.
When the profile option CZ: Enable Configurator Engine is set to either Fusion or Both, the General area of the Workbench includes the Configurator Engine setting. This setting is specific to the Model you are viewing or editing, is read-only, and it can have a value of either Original or Fusion.
If the value of this setting is Fusion, then all FCE-related content and functionality is available when:
Viewing or editing the Model's structure, rules, and User Interface(s) in Configurator Developer
Configuring the Model in a runtime UI, or the Model Debugger
A value is determined for this setting when you create a Model (either manually in Configurator Developer, or by importing a BOM Model), or convert an existing Model to use the FCE by running the Model Conversion Utility.
The value of this setting is Original if the Model was created or imported:
In a version of Configurator Developer that does not support the FCE
When the FCE was not enabled, or
When the profile option CZ: Configurator Engine for New Models was set to Original (see CZ: Configurator Engine for New Models).
The value of this setting is Fusion if the Model was:
Created or imported when the profile option CZ: Configurator Engine for New Models was set to Fusion
or
Converted to use the FCE
In this case, the Configurator Engine setting is Original in the source model and Fusion in the converted model.
For more information, see Converting Existing Models to Use the Fusion Configurator Engine.
Note: Once it is determined that a Model uses the FCE, changing the value of CZ: Configurator Engine for New Models or CZ: Enable Configurator Engine does not affect the Model's runtime behavior, or the availability of FCE-specific content when editing the Model in Configurator Developer.
In the Main area of the Repository, you can create a personalized view that includes the column Configurator Engine Type. This column displays the engine type associated with each Model: Original or Fusion.
The Model Report includes features that are particular to the FCE. For background information about the Model Report, see the Oracle Configurator Developer User's Guide.
When working in an FCE Model, you cannot create a Model Reference to a Model that does not use the FCE. (The reverse is also true.) For this reason, Models that do not use the same configurator engine as the Model you are editing are not available for selection.
Tip: For optimal performance of the Auto-Complete process, Oracle strongly recommends setting the Maximum Instances as low as possible and the Minimum Instances as high as possible for all BOM and non-BOM Model Reference nodes.
For more information about BOM Model References, see BOM Nodes.
This section describes properties that are available only when building a configuration model that uses the FCE in Configurator Developer, and when configuring such a model at runtime. It includes the following sections:
This section describes the System Properties that are available only to FCE Models and indicates the type of node(s) with which each Property is associated.
Almost all System Properties can be used when defining text expressions and runtime conditions for UI elements. Exceptions include System Properties that return objects or collections, such as Children and SummaryChildren. For details about these System Properties, or general information about text expressions and runtime conditions, see the Oracle Configurator Developer User's Guide.
Some System Properties are also mutable, which means that the Property's value can be directly set by the propagation of a rule or by the end user at runtime. Examples of nodes that are mutable include InstanceCount, ConnectionCount, RelativeQuantity, and SelectedCount. In the System Properties table, the Description column indicates whether or not each Property is mutable.
Where a set of System Properties defines a Minimum and Maximum value, count, or quantity (for example, MinimumSelected and MaximumSelected), only the node's current value is mutable. In these cases, the minimum and maximum values keep track of the node's current domain at runtime, not its current value.
For example, if you want to be sure the value of Feature X does not fall below 5 at runtime, define a rule like this:
FeatureX.Value() >= 5
Because the MinValue System Property is not mutable, you cannot use it to constrain a node's minimum value. Therefore, the following rule is invalid:
FeatureX.MinValue() = 5
You can define rules in which optional Connectors participate by using the ConnectionCount System Property.
For example, to prevent an optional Connector from being connected at runtime, define a rule like this:
NOT(OF1) REQUIRES (ConnectorA.ConnectionCount = 0)
In this example, an end user cannot connect Connector A when OF1 is deselected or excluded.
To require an end user to connect an optional Connector at runtime, define a rule like this:
OF1 REQUIRES (ConnectorA.ConnectionCount > 0)
In this example, Oracle Configurator requires Connector A to be connected when OF1 is selected.
To dynamically modify how many instances of a component can be created at runtime, use the InstanceCount System Property.For example:
OF1 IMPLIES ComponentX.InstanceCount() > 2
OF1 IMPLIES ComponentX.InstanceCount() < 10
The first rule specifies that more than 2 instances of ComponentX will be created when OF1 is selected. In this case, the rule modifies the minimum number of instances specified in Configurator Developer.
The second rule specifies that no more than 9 instances of ComponentX will be created when OF1 is selected. In this case, the rule modifies the maximum number of instances specified in Configurator Developer. Note that ComponentX must have at least 2 instances to satisfy the constraints defined in this example.
You can also control the relative or absolute quantity of a BOM node using Constraints.
For example:
OF1 IMPLIES BOMOptionClassX.Quantity() < 7
OF2 IMPLIES BOMOptionClassY.RelativeQuantity() > 10
System Property | Description | Node Type(s) | Returns |
---|---|---|---|
MinRelQuantity | The node's minimum relative quantity. Not mutable. |
BOM nodes | Integer or Decimal |
MaxRelQuantity | The node's maximum relative quantity. Not mutable. |
BOM nodes | Integer or Decimal |
RelativeQuantity | Quantity of a BOM node relative to the quantity of its parent. Mutable. |
All BOM nodes | Integer or Decimal |
SelectedCount | The number of unique selected children for an Option Feature. Mutable. |
Option Feature | Integer |
MinConnections | Minimum number of target instances the Connector should have. Not mutable. |
Connectors | Integer |
MaxConnections | Maximum number of target instances the Connector may have. Not mutable. |
Connectors | Integer |
ConnectionCount | Number of target instances assigned to a Connector. Mutable. |
Connectors | Integer |
DefinitionMinValue | The node's minimum value as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum value. | Integer or Decimal |
DefinitionMaxValue | The node's maximum value as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum value. | Integer or Decimal |
DefinitionMinQuantity | The node's minimum quantity as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum Quantity (for example, all BOM nodes). | Integer or Decimal |
DefinitionMaxQuantity | The node's maximum quantity as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum Quantity (for example, all BOM nodes). | Integer or Decimal |
DefinitionMinRelQuantity | The node's minimum relative quantity, as defined in the Model. Not mutable. |
All BOM nodes | Integer or Decimal |
DefinitionMaxRelQuantity | The node's maximum relative quantity, as defined in the Model. Not mutable. |
All BOM nodes | Integer or Decimal |
DefinitionMinSelected | Minimum number of selections as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum Selections (for example, BOM Models, BOM Option Classes, and Option Features) | Integer |
DefinitionMaxSelected | Maximum number of selections as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum Selections (for example, BOM Models, BOM Option Classes, and Option Features) | Integer |
DefinitionMinInstances | Minimum number of instances as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum Instances (for example, Components and Model References) | Integer |
DefinitionMaxInstances | Maximum number of instances as defined in the Model. Not mutable. |
All nodes that have a Minimum and Maximum Instances (for example, Components and Model References) | Integer |
DefinitionMinConnections | Minimum number of target instances for a Connector, as defined in the Model. Not mutable. |
Connectors | Integer |
DefinitionMaxConnections | Maximum number of target instances for a Connector, as defined in the Model. Not mutable. |
Connectors | Integer |
Proposed | Returns True if the current state or value of the node is the result of a Default or Search Decision. Not mutable. |
All nodes that support state, value, or quantity. | Boolean |
IsBound | Returns True if the node is completely bound. This means both domain and cardinality, if applicable. Note: For nodes with both state and quantity, both must be bound. For BOM nodes, both absolute and relative quantity must be bound. Not mutable. |
All variables: Numeric Features; Option Features; Boolean Features; BOM Models and Option Classes; Totals and Resources; instance sets; Connectors | Boolean |
IsBoundSelectionState | Returns True if the state of the node is bound. Not mutable. |
All state variables, which include, Option Features, Options, Boolean Features, BOM Models, BOM Option Classes, and BOM Standard Items | Boolean |
IsBoundQuantity | Returns True if the (absolute) quantity of the node is bound. Not mutable. |
All variables with (absolute) Quantity, which includes, BOM Models, BOM Option Classes, and BOM Standard Items | Boolean |
IsBoundRelQuantity | Returns True if the relative quantity of the node is bound. Not mutable. |
All variables with relative Quantity, which include BOM Models, BOM Option Classes, and BOM Standard Items. | Boolean |
InputRequiredFlag | Returns True if a node is marked ‘User Input Required’ in Configurator Developer (or by other means such as a Configurator Extension), regardless of whether or not it is bound. (Related to display of Input Required indicator.) Not mutable. See Require End User Input Setting. |
All nodes, although some cannot be set to True. | Boolean |
InputRequired | Returns True if a node is marked ‘User Input Required’ in Configurator Developer (or by other means such as a Configurator Extension) and is not bound. (Related to display of Input Required indicator.) Not mutable. See Require End User Input Setting. |
All nodes, although some cannot be set to True. | Boolean |
InputRequiredInSubtree | Returns True if InputRequired is True on this node or a descendant. Not mutable. |
All nodes. | Boolean |
InputRequiredError | Returns True when node.InputRequired is True and Session.InErrorMode() is True. Not mutable. |
All nodes. | Boolean |
ChangedByAC | Returns True if the selection state or quantity of the node was changed as a result of the most recent Auto-Complete. Not mutable. |
All nodes | Boolean |
ValidationErrorText | Returns text set by a Configurator Extension in the event of a validation error on the node. Not mutable. |
All nodes | String |
This section lists properties that refer to the state of a runtime configuration session and are not associated with Model nodes. There are two categories of configuration session properties that are available with the FCE:
Configuration Status
Conflict Processing
Refer to the tables below for details.
Name | Description | Data Type | Context |
---|---|---|---|
AutoOverrideEnabled | Returns True if Auto-Override is enabled, False if it is disabled. The value is derived from the Auto-Complete for Conflicts setting in the UI Definition. For more information, see Auto-Override |
Boolean | Global |
ConflictOverridable | Indicates whether the current conflict is overridable. Returns True when processing a primary conflict that was triggered by a User Request, or when an empty explanations list is returned for a secondary conflict where the primary conflict has a User Request. | Boolean | Only required during conflict processing; False at other times. |
OverrideSuccessful | Returns True in a Conflict flow if Override was attempted and it succeeded. State persists until next Conflict occurs. | Boolean | Global, but generally only used in templates related to Conflict processing. |
For details about how Oracle Configurator uses System Properties such asSelectionState to display the selection state of options at runtime, see the Oracle Configurator Developer User's Guide. This section lists System Property values that indicate an option's selection state that are available only in FCE Models.
At runtime, the value of the SelectionState and DetailedSelectionState System Properties is Selectable for options that are neither selected nor excluded from a configuration.
In FCE Models, the values of the DetailedSelectionState System Property also include Recommended (Proposed Selected) and Not Recommended (Proposed Excluded). These values refer to options that were added to or excluded from the configuration by Auto-Complete.
For more information, see Logic State Display.
In Oracle Configurator, the term "domain" refers to the range of possible values that either the end user or the Auto-Complete process can provide for an option at runtime. For example, you specify a domain for Numeric Features in Configurator Developer by specifying Minimum and Maximum values. For example, the domain for an Integer Feature could be "1 - 100," which means a value of 1 through 100, inclusive.
Note: At runtime, a variable's domain may be dynamically reduced by the propagation of constraints. This is explained in Domain Display and Availability.)
Use the Domain Ordering setting to control how Auto-Complete determines a value for Numeric Features that do not yet have a value, and Boolean Features that are still Unbound. (An Unbound Boolean Feature is one that is neither True nor False by default, and there has been no decision made about it yet during the configuration session.)
Auto-Complete refers to the Domain Ordering setting, as well as other constraints and preferences that you have defined in the Model, to reduce an option's domain and determine the value (or selection state) that you want it to have in a completed configuration.
Important: For optimal performance of the Auto-Complete process, set all domain ranges to be as narrow as possible. In other words, set minimum values as high as possible and maximum values as low as possible.
The available Domain Ordering settings vary by node type.
Integer Features:
System Default: This is the default setting for Integer, Decimal, and Boolean Features. Accept this setting if you want Auto-Complete to use its own default method for determining a value. This method provides optimal runtime performance and is recommend if you do not have a preference for the node's value or selection state at runtime.
Linear Search, Min to Max: Select this setting if you want Auto-Complete to apply values within the specified domain in increasing order, beginning with the node's Minimum value.
Linear Search, Max to Min: Select this setting if you want Auto-Complete to apply values within the specified domain in decreasing order, beginning with the node's Maximum value.
Binary Search, Decreasing Max: Select this setting if you want Auto-Complete to successively split the domain in a binary search until either a single value is bound, or no solution is found. When you select this setting, Auto-Complete checks the lower half of the domain first.
Binary Search, Increasing Min: This setting is similar to "Binary Search, Decreasing Max", except that when you select this setting, Auto-Complete checks the upper half of the domain first.
Decimal Features:
System Default: See "System Default" for Integer Features, above.
Binary Search, Decreasing Max: See "Binary Search, Decreasing Max" for Integer Features, above.
Binary Search, Increasing Min: See "Binary Search, Increasing Min" for Integer Features, above.
UI Templates for Numeric Feature Domain Display:
By default, the following UI Content Templates display a Numeric Feature's domain at runtime:
Boolean Features:
System Default: See "System Default" for Integer Features, above.
Prefer False: Select this setting if you want Auto-Complete to set the Boolean Feature to False (deselected) first and then, if it cannot be set to False, set it to True (select it).
Prefer True: Select this setting if you want Auto-Complete to set the Boolean Feature to True (selected) first, and then, if it cannot be set to True, set it to False (deselect it).
The domain for Model References and Connectors is the set of existing or possible instances of the referenced or target Model, along with the minimum and maximum instances.
The Domain Ordering setting is not available for Option Features and BOM Option Classes. The Auto-Complete process selects options from these nodes based on the order in which they appear in the Model structure. For example, Auto-Complete selects the first Option that appears below its parent Option Feature in the Model structure.
The domain for Option Features and BOM Option Classes is the set of child nodes, along with the minimum and maximum number of selections specified for the parent nodes in Configurator Developer.
Use the Require End-User Input setting to indicate that a Feature, Connector, or BOM Option Class must be bound by the end user, rather than by Auto-Complete, at runtime. Select this setting only if it is important for the end-user to explicitly enter a value, create a connection, or make a selection at runtime.
Note: Auto-Complete cannot run until the end user binds all variables that require end-user input.
The Require End-User Input setting is available for the following node types:
Numeric Features
Text Features
Option Features
Connectors
BOM Option Classes
For BOM Option Classes and Option Features, the setting to require end-user input is "Require End-User Option Selection when Selection is Mandatory." For Connectors, the setting is "Require End-User Connection when Connection is Mandatory."
You can also require a variable to be bound by the end-user by creating a Configurator Extension that sets the variable's InputRequiredFlag System Property to True at runtime. For details about creating Configurator Extensions, see the Oracle Configurator Developer User's Guide and the Oracle Configurator Extensions and Interface Object Developer's Guide.
Note: If the end user invokes either the Finish or Auto-Complete action and there are one or more items that require end-user input, Auto-Complete does not run. In this case, a message displays all options that require end-user input before running Auto-Complete. Each option appears as a link that the end user can use navigate to the page on which the option appears.
For more information, see:
At runtime, only the end user can enter a value for a Text Feature. Therefore, Auto-Complete cannot complete a configuration if it contains a required Text Feature. A required Text Feature can be part of a completed configuration only if the end user has bound it by entering some text.
Note: Several types of nodes allow you to control whether they must be bound by the end-user at runtime. For details, see Require End-User Input Setting.
If your Model contains required Text Features and you use custom UI Content Templates, be sure to test the runtime Oracle Configurator thoroughly to be sure it performs as expected when one or more required Text Features is blank. (You can use the session-level System Property InputRequired to detect this case. For details, see the table System Properties.)
It is possible for a new instance of a component that contains a required Text Feature to be created when running Auto-Complete. When this happens, the status page that appears after Auto-Complete has finished contains a link that the end user can use to navigate to the page containing the Text Feature. For more information about the Auto-Complete process, see Auto-Complete Configuration.
At runtime, if an end user (or a Configurator Extension) attempts to set a value of a Text Feature that exceeds its defined Maximum Length, the resulting conflict cannot be overridden.
For an overview of Counted Option Features, see the Oracle Configurator Developer User's Guide.
In FCE Models, Counted Option Features include a setting that enables you to specify the maximum quantity an end user can enter for each option at runtime. This setting is called Maximum Quantity per Option. (The minimum quantity per option is implicitly set to 0 (zero), and you cannot change this value.)
Each Option within a Counted Option Feature has the following System Properties:
DefinitionMinQuantity
DefinitionMaxQuantity
MinQuantity
MaxQuantity
Quantity
You can use the Quantity System Property when defining rules.
In an FCE Model, you can create Totals and Resources of type Decimal or Integer. Integer Totals and Resources display only integers value at runtime, while Decimal Totals and Resources display either integer or decimal values. After creating a Total or Resource, you cannot change its type.
If you know that rules in your Model will be adding or subtracting only integer quantities to a Total or Resource, then use Integer Totals and Integer Resources. The integer type is preferable because Auto-Complete processes integer domains more efficiently at runtime.
Note: When you convert a Model to use the FCE, all existing Totals and Resources are converted to Decimal Totals and Decimal Resources. See Converting Existing Models to use the Fusion Configurator Engine.
When you create a Total or Resource, you must specify a Minimum and Maximum Value. By default, the predefined UI Content Templates that display Totals and Resources display their Minimum and Maximum Values at runtime (their domain). For example, a Decimal Total with a Minimum of 5.2. and a Maximum of 9.9 appears as follows when a configuration session begins:
Range: 5.2 to 9.9
Oracle Configurator dynamically updates the domain range as values are added and subtracted during a configuration session.
The range defined in Configurator Developer for both Integer and Decimal Resources is strictly enforced at runtime. For example, a Resource has Minimum and Maximum values of 1 and 10, respectively. At runtime, Oracle Configurator displays a conflict message if the end user's input or selection would cause the Resource to fall below 1 or exceed 10.
The FCE does not support the concept of initial values for Numeric Features, Totals, Resources, or Boolean Features in the same way as the Original Configurator Engine. Therefore, when you are editing an FCE Model, Oracle Configurator Developer does not provide a setting that enables you to specify an initial value for these node types.
If you want a Numeric Feature, Total, or Resource to have a specified value when a configuration session begins, then you must define a Rule that sets that value. You can define an Accumulator Rule to set the value, or an equivalent Statement Rule (using the AddsTo or SubtractsFrom operators). For example, to set the value of an Decimal Feature named DecimalFeatureX to 13.5 define a Statement Rule similar to the following:
ADD 13.5 TO 'DecimalFeatureX'
Note that you can also set the value of a Numeric Feature from the value of some other Numeric Feature, as shown by the following:
ADD 'DecimalFeatureY' TO 'DecimalFeatureX'
If you want a Boolean Feature to have a specified value when a configuration session begins, define a Statement Rule similar to the following and specify a Rule Class of 'Default':
'BooleanFeatureY' = True
In FCE Models, it may be more accurate to think of an initial value as a base value, since the value you specify in Configurator Developer is not necessarily the value the node will have when the configuration begins. This is because it is possible for the node to participate in other rules which, when they propagate at runtime, modify the value that you specified for the node in your rules.
For example, you define a rule that sets DecimalFeatureX to 13.5 (as shown above), but an Option OptionA is selected by default and it participates in a rule that causes 10 to be added to DecimalFeatureX. In this case, the input range of DecimalFeatureX appears as shown below when the configuration session begins:
Range: 13.5 to 23.5
Note: When you convert a Model to use the FCE, all Initial Value settings for Numeric Features, Totals, and Resources are converted to Accumulator Rules. For example, if the Initial Value for IntegerFeatureX is 5, then after the conversion the FCE Model contains the following rule (shown here in Statement Rule format):
ADD 5 TO 'IntegerFeatureX'
Initial values on Boolean Features act as defaults. Therefore, they are converted to Implies Logic Rules.
This section describes some unique characteristics and runtime behaviors of BOM nodes in an FCE Model.
In FCE Models, the System Property RelativeQuantity is available on all BOM nodes and can be used, for example, when defining rules or runtime UI conditions. At runtime, the value of this System Property is the current quantity of the node relative to its parent's quantity. For example, if a quantity of 4 is required for the child node when the parent node's quantity is 1, then the child's Relative Quantity is 16 when the parent's quantity is 4.
When you import or refresh a BOM Model, or convert a Model to use the FCE, a default value is provided for any BOM nodes that have a blank (null) Minimum or Maximum Quantity. For details, see:
Tip: For optimal performance of the Auto-Complete process, Oracle strongly recommends setting the Maximum Quantity as low as possible and the Minimum Quantity as high as possible when creating a BOM in Oracle Bills of Material. Oracle also recommends setting the Maximum Instances as low as possible and the Minimum Instances as high as possible for all BOM Model References in Configurator Developer.
The following points are specific to BOM Model References.
When configuring an FCE Model, Oracle Configurator automatically adds each instance of a BOM Model to the configuration as soon as the end user creates it. (When configuring a Model that uses the Original Configurator Engine, a newly created instance of a BOM Model is not added to the configuration until the end user selects it.)
The maximum quantity allowed at runtime for an instance of a BOM Model is the Maximum Quantity defined for that item in Oracle Bills of Material. If you modify the Instances setting for a BOM Model Reference in Configurator Developer by selecting 'Multiple or Variable Instances', then the BOM Model's Maximum Quantity becomes the maximum quantity allowed for all instances of that item at runtime.
When viewing a BOM Model Reference's details page in Configurator Developer, the Initial Minimum Instances and Initial Maximum Instances settings are not displayed if the node can have multiple instances at runtime (that is, when 'Multiple or Variable Instances' is selected). In this case, Configurator Developer displays text similar to the following in the node's details page:
Note: The Maximum Quantity defines the total Quantity allowed across all instances of this component.
You can specify whether a BOM Model Reference that is a child of a BOM Option Class is required or optional at runtime. In other words, you can select either 'Required Single Instance' or 'Optional Single Instance' in the node's details page in Configurator Developer. Because a BOM Model Reference that is a child of a BOM Option Class cannot be instantiable multiple times, the 'Multiple or Variable Instances' setting is disabled for such nodes in Configurator Developer.
Important: Connectors are not supported in the current release of the Fusion Configurator Engine. The information about Connectors provided in this document is only for planning purposes. However, Connectors continue to be supported for models using the Original Configurator Engine.
In an FCE Model, you can define single-instance Connectors, and also Connectors with Multiple-Instance and and Reverse relationships. This section describes Multiple-Instance and Reverse Connectors. For details about single-instance Connectors, and general information about Connectors, see the Oracle Configurator Developer User's Guide.
Important: To create any type of Connector, both the source and the target Model must use the FCE. Therefore, when editing an FCE Model, only FCE Models are displayed when selecting the Connector's target Model.
A Multiple-Instance Connector is a Connector that can have multiple targets at runtime, and therefore may be connected multiple times within a configuration. For example, to configure a local area network (LAN), an end user must be able to connect multiple devices - such as printers and workstation - to a single server hub.
You define a Multiple-Instance Connector in Configurator Developer by specifying values for the Minimum and Maximum Connections settings. These settings appear in a Connector's details page, and the default values are 0 and 1, respectively.
Note: When you convert a Model to use the FCE, the default Minimum and Maximum Connections for all required Connectors is 1/1. (A required Connector is one whose Connection Required setting is selected in the source Model.) Additionally, the Connection Required setting (Connector details page) is not available in FCE Models. For an example of how you can make a connection required at runtime in an FCE Model, see Connectors and Configuration Rules.
Oracle Configurator Developer uses the Multiple-Instance Connector Control UI Content Template to display Multiple-Instance Connectors at runtime. For details, see Multiple-Instance Connector Control.
A Reverse Connector defines a reverse relationship with a Connector in the Connector's target Model. When this relationship exists, creating a connection at runtime creates a bi-directional connection between the Connector and its target Model. In other words, when the end user creates a connection or disconnects an existing connection, the other Connector in the reverse relationship is connected or disconnected automatically.
Reverse Connectors are useful when, for example, you need to define rules that are based on a connection occurring at runtime, regardless of whether the connection is made in the source or the target Model. When a Model contains a Reverse Connector, any rules that you define in the target Model can include nodes from the Connector's parent Model as participants (the reverse is also true). If a Reverse Connector also allows multiple connections, it is not necessary to duplicate the same rule for every possible connection source.
You can modify the Reverse Connector setting in either the source or target Model in Configurator Developer, as long as the other Model is not locked by another user. When you remove or modify a reverse connector relationship in one Model, Oracle configurator makes the corresponding change in the other Model.
When you perform any of the following actions on a Reverse Connector, Configurator Developer prompts you to confirm the action and then (if you choose to proceed) clears the reverse relationship:
Delete the Connector
Move the Connector so it is no longer a child of the root Model
Change the Connector's target (that is, select a different Model)
Copy the Connector: In this case, Configurator Developer clears the reverse relationship in the new (copied) Connector, but the relationship in the source Connector does not change.
At runtime, an end user can connect or disconnect either participant in a reverse relationship. When this happens, the other participating component also connects or disconnects automatically.
Modifying or removing a reverse connection relationship does not affect any existing rules in which the Connectors participate.
Procedure
To create a Reverse or Multiple-Instance Connector:
Open a Model for editing, and then create a Connector.
See the Oracle Configurator Developer User's Guide for details.
In the Connector's details page, specify values for Minimum Connections and Maximum Connections. The default values are 0/1. Accept these values if you do not want to allow multiple connections at runtime.
If you want the Connector to participate in a reverse relationship, select a Connector from the Reverse Connector list.
Note: If the Connector you are viewing is not a child of the root Model, the Reverse Connector setting is disabled.
This list displays all Connectors in the target Model that:
Do not already participate in a reverse relationship with another Connector
Are children of the root Model
In other words, Connectors that are children of a Model Reference or a Component do not appear in the list.
Specify Effectivity settings, and then click Apply.
Important: To create any type of Connector, both the source and the target Model must use the FCE. When selecting a Connector from the Reverse Connector list, Configurator Developer displays only Connectors that exist within FCE Models.
To make a connection required at runtime, define a Statement Rule that uses the Connector and itsConnectionCount System Property. For example:
FeatureA IMPLIES ConnectorA.ConnectionCount() >= 1
To prevent a connection from being made at runtime, define a Statement Rule similar to the following:
FeatureA IMPLIES ConnectorA.ConnectionCount() = 0
For additional examples of rules involving the ConnectionCount System Property, see Model Node System Properties.
In an FCE Model, Effectivity settings are available for the following node types:
BOM nodes (all types)
Option Features
Options
Boolean Features
Optional and instantiable Components
Note: After converting an existing Model to use the FCE, Effectivity settings are not available for Integer and Decimal Features, Totals, Resources, and mandatory Components (that is, Components with a Min/Max of 1/1). To work around this change, use Display Conditions to control the display of these nodes at runtime.
Additionally, you can specify Effectivity for any type of rule in an FCE Model (including Accumulator Rules).
This section describes unique characteristics of configuration rules in FCE Models. For general information about configuration rules, see the Oracle Configurator Developer User's Guide.
In an FCE Model, a variable that has neither been selected nor excluded from a configuration at runtime has a logic state of Unbound. (In Models that use the Original Configurator Engine, options meeting this criteria have a logic state of Unknown.) A variable is unbound when its domain is open, which means that either a value has not been assigned or the set of its members has not been finalized. Variables may be unbound because the end user has not yet made a selection, entered a value, or run Auto-Complete.
At runtime, the value of the SelectionState and DetailedSelectionState System Properties is Selectable for options that are neither selected nor excluded from a configuration. For information about how logic state determines an option's appearance at runtime, see Logic State Display.
Note: When you convert a Model to the FCE, the Unknown logic state becomes Unbound, Not Selected becomes Selectable, and Unsatisfied becomes Input Required.
Refer to the Oracle Configurator Developer User's Guide for details about other logic states.
When defining a rule in Configurator Developer, you must assign the rule to a Rule Class. Oracle Configurator refers to a rule's Rule Class when an end user is manually configuring a product and when the Auto-Complete process is running.
A rule's Rule Class determines the following at runtime:
The rule's general behavior
Whether the rule is mandatory (that is, it must always be True in the configuration)
At what point in the configuration session the rule is applied (Defaults and Search Decisions only)
The three Rule Classes are:
Which Rule Class you can specify depends on the rule's type. Configurator Extensions and Rule Sequences cannot have a Rule Class. All other types of rules must have a Rule Class, but not all Rule Classes are valid for each type of rule. For details, see the table Rule Types and Rule Classes. If multiple Rule Classes are available for a rule, you can change its Rule Class at any time.
Caution: New Defaults and Search Decisions appear at the end of their respective sequence, and changing an existing rule's Rule Class from Default or Search Decision to Constraint may adversely affect a well-defined sequence. Therefore, be sure to review and unit test the sequence of Defaults and Search Decisions after modifying a rule's Rule Class. See Specifying a Sequence for Defaults and Search Decisions.
Rule Sequences can contain any rule, regardless of the rule's class. However, to reduce future maintenance when upgrading to a future version of Oracle Configurator, Oracle strongly recommends that all rules in each Rule Sequences have the same Rule Class. For example, define a Rule Sequence that consists of only Constraints. For details about Rule Sequences, see the Oracle Configurator Developer User's Guide.
Certain Constraint Definition Language (CDL) operators are not available for use in Statement Rules, depending on a rule's Rule Class. For example, a Statement Rule using an Accumulator operator (AddsTo or SubtractsFrom) can only have a Rule Class of Constraint. For details, see Fusion Configurator Engine and the Constraint Definition Language.
Rule Type | Constraint | Default | Search Decision |
---|---|---|---|
Logic Rule | X | X | X |
Comparison Rule | X | X | X |
Accumulator Rule | X | ||
Property-based Compatibility | X | ||
Explicit Compatibility | X | ||
Design Chart | X | ||
Statement Rule | X | X | X |
Constraints are applied at runtime while an end user manually selects options and enters values during a configuration session.
Rules that are classified as Constraints are applied at runtime while an end user manually selects options and enters values during a configuration session. Constraints must always be true in the context of a configuration. For example, when the end user makes a selection that violates a Constraint at runtime, Oracle Configurator displays a contradiction message informing the user that the previous action cannot be applied.
A Constraint may be expressed as a logical expression, a numeric comparison, a compatibility table (or Design Chart), or a property-based compatibility expression.
Unlike Defaults and Search Decisions, you cannot specify the order in which you want Oracle Configurator to consider Constraints at runtime.
For a list of which Rule Classes are valid for each type of rule, see the table Rule Types and Rule Classes.
In an FCE Model, relational operators can be the primary operator within a Constraint. Consider the following examples that use the equals ( = ) and greater-than ( > ) relational operators:
x = y + (q*z)
a > b
In these simplified expressions of rules, the left-hand side of the expression can propagate (or "push") numeric information to the right-hand side. In the FCE, the right-hand side of the expression can also propagate ("push back") to the left-hand side. The ability to define such Constraints allows rules in FCE Models to be bidirectional; that is, they can propagate in both directions.
Like Constraints, Defaults are also applied at runtime while an end user manually selects options and enters values during a configuration session. However, unlike Constraints, Defaults are:
Flexible, and they do not lead to a contradiction at runtime when, for example, the end user deselects an option that was selected by the rule.
Applied at runtime in the order specified in Configurator Developer, after each of the end user's inputs are applied and propagated.
A Default can fail due to a conflict with one of the end user's inputs or the propagation of a Constraint. (You can specify the order in which Defaults propagate; see Specifying a Sequence for Defaults and Search Decisions.)
You can use Defaults to guide end users towards a preferred solution by defining several contradictory rules that will be processed in the order you specify at runtime.
For example, a manufacturer of laptop computers prefers that their customers purchase the lightweight version of a laptop instead of the heavier model, and the Deluxe carrying case rather than the Basic version. To guide buyers towards purchasing the lightweight laptop with the Deluxe case, without preventing them from selecting alternative options, the manufacturer defines the following rules and sequence:
1. Laptop 900 Implies 900-LTW 2. Laptop 900 Implies Deluxe Case 3. Laptop 900-HVW Implies Deluxe Case
With these rules in place, the lightweight version of the laptop (900-LTW) and the Deluxe Case will be selected by default when the end user selects the Laptop 900 model. If the end user then selects the heavier model (the 900-HVW), the Deluxe Case will still be selected.
Many constraints can be defined as a Default. For example, your Model contains a Numeric Feature called Weight which has a range (domain) of 1000 - 5000. You prefer a solution in which the value of this item is less than or equal to 3000, so you defined the following Statement Rule and assign a Rule Class of Default:
Weight <= 3000
When this rule propagates at runtime, the range for the Weight item is reduced and appears as follows in the runtime UI:
Range: 1000 to 3000
For a list of which types of rules can be classified as Defaults, see Rule Types and Rule Classes.
Note: After converting an existing Model to use the FCE, the Defaults operator does not appear in the Logic Rule or Comparison Rule details pages.
Rules that you classify as Search Decisions are applied:
During the Auto-Complete process
After all User Decisions and Defaults have been applied and propagated
Before the application of the FCE's inherent Search Decisions
In the order that you specify in Configurator Developer
Rules classified as Search Decisions may be expressed as a logical expression or a numeric comparison.
For more information, see Specifying a Sequence for Defaults and Search Decisions.
For a list of which Rule Classes are valid for each type of rule, see Rule Types and Rule Classes.
At runtime, Auto-Complete applies rules classified as Defaults and Search Decisions according to the sequence that you specify in Configurator Developer. When you define a rule and classify it as either a Default or Search Decision, Configurator Developer assigns a default sequence number which places the rule at the end of its respective list. For example, you have five existing rules with the "Defaults" Rule Class. When you create a new rule and specify a Rule Class of Defaults, the new rule appears at the end of the list of Defaults rules, and its sequence number is 6.
If you want a rule to appear earlier in its respective sequence, click either Reorder Defaults or Reorder Search Decisions in the Rules area of the Workbench.
Note: At runtime, any rules that have cross-model or cross-instance participants will not necessarily be applied in their specified sequence relative to the other rules defined in the Model. The order of a set of such rules that apply to the same scope (combination of Models or instances) will remain as defined relative to one another, but as a group they will be applied after instantiation of the scope (all the rule’s participants) and application of all the rules of that class defined within the various instances of the scope.
Procedure
To modify the order in which Defaults or Search Decisions are applied at runtime:
From the Rules area of the Workbench, click Reorder Defaults or Reorder Search Decisions.
Specify a new sequence number for one or more rules, and then click Update.
Review the updated sequence. The Changed column indicates which rules you updated.
If you are satisfied with the changes, click Apply.
To cancel your changes and return to the Rules area of the Workbench, click Cancel.
This section describes characteristics of Compatibility Rules that apply only in FCE Models.
When defining any type of Compatibility Rule (Explicit, Property-based, or Design Chart), Configurator Developer does not allow more than one of the rule's participants to have a Maximum Selections value that is greater than 1. If you violate this restriction when creating or editing a Compatibility Rule, Configurator Developer displays a warning when you save or validate the rule. If the Maximum Selections value of one of the rule participant's changes after the rule is created, Configurator Developer displays an error when you generate logic.
Enforcing this restriction in Configurator Developer ensures that Compatibility Rules perform as expected at runtime.
Accumulator Rules allow you to add or subtract a value from a variable at runtime. For example, when the end user selects the 512 MB RAM option you want to add 512 to a Total called "Total RAM Selected."
Procedure
You can create an Accumulator Rule by either of these methods:
Graphically:
Create a Rule of type Accumulator Rule.
Specify which Model nodes are participants (operands) in the rule.
Select either the AddsTo or SubtractsFrom operator.
Programmatically:
Create a Rule of type Statement Rule.
Enter the text of the Statement Rule, using the AddsTo or SubtractsFrom operator according to the following syntax:
ADD n TO x
or
SUBTRACT n FROM x
Where n is a number and x is a node, such as a Total, a Resource, or a Numeric Feature.
Accumulator Rules can only have a Rule Class of Constraint; they cannot be classified as Defaults or Search Decisions. If you create a Statement Rule with a Rule Class of either Defaults or Search Decision, and the rule's text defines an Accumulator rule (that is, it uses either the "AddsTo" or "SubtractsFrom" operators), then Configurator Developer forces the Rule Class setting to Constraints, and displays a message similar to the following when you validate the rule:
Rule Class changed to 'Constraint'.
If you later change the text of the Statement Rule such that it no longer defines an Accumulator Rule, then Configurator Developer re-enables the Rule Class setting. For more information about Rule Classes, see Rule Classes.
Note: When you convert an existing Model to use the FCE, all Contributes and Consumes Rules are converted into Accumulator Rules, and "Numeric Rule" is no longer an option when creating new rules in the converted Model. Additionally, any Initial Value that is defined for a Numeric Feature, Total, or Resource is removed and converted into an Accumulator Rule. For more information, see Converting Existing Models to Use the Fusion Configurator Engine.
It also is important to understand that Accumulator Rules do not simply add or subtract a quantity from a variable. All rules of this type defined against the same target node can be considered terms in a constraint against that node. This is because all AddsTo and SubtractsFrom expressions in a Model become a single constraint on the target node. In other words, the target node equals the sum of all AddsTo expressions defined against it in the Model minus the sum of the SubtractFrom expressions.
Additionally, if the target node is involved in any other constraints, the equality constraint generated by its AddsTo and SubtractsFrom expressions must be satisfied along with all the others. As with all other constraints, the equality constraint is bidirectional, so it can "push back" on the values of the participants on the left-hand-side of the rule.
Keep the following in mind when using Accumulator Rules:
If the Model contains multiple Accumulator Rules that add to or subtract from the same target node, and that node exists in a referenced Model, generating logic creates a single constraint that equates the target to a sum of all the terms expressed in the individual rules in that model.
If AddsTo or SubtractsFrom rules are defined against a given target within multiple parent models in a reference model hierarchy, each of the generated equality constraints must be satisfied individually. In other words, the AddsTo and SubtractsFrom terms are not accumulated across multiple referencing models.
Since the FCE merges all of a Model's Accumulator Rules into a single Constraint, it is not possible to support individual rule violation messages for Accumulator Rules. Consequently, Configurator Developer provides no Rule Violation section in an Accumulator Rule's details page. Similarly, the Rule Violation section is disabled for Statement Rules when their text defines an Accumulator Rule (that is, uses the AddsTo or SubtractsFrom operator). If a Statement Rule's text changes such that it no longer defines an Accumulator Rule, then Configurator Developer re-enables the Rule Violation section.
When you generate Model logic, Configurator Developer displays a warning message for any nodes that are the target of Accumulator Rules from multiple Models. The message warns that multiple (and possibly contradictory) rules were generated for the target node, and that these rules may produce undesirable results at runtime.In this case, it may be necessary to modify the constraints defined in the Model containing the target node.
Note: When you convert an existing Model to use the FCE and one or more Numeric Rules meet the criteria described in the preceding paragraph, similar warnings appear in the Model Conversion Report. For more information, see Converting Existing Models to Use the Fusion Configurator Engine.
This section describes information about Configurator Extensions (CX) that you should consider when using the FCE.
In a Model that uses the FCE, the Configurator Extension event postValueChange can be triggered only when the variable (option) to which it is associated is bound at runtime. (For example, a Numeric Feature is bound when it has a value.) This event cannot be triggered if the variable's domain changes, but the variable itself remains unbound.
Configurator Extension events cannot be triggered during the Auto-Complete process. If a CX is used to modify any part of a completed configuration that was created by Auto-Complete (including states, values, instance containments, and so on), then Oracle Configurator displays an error. There is one exception: a CX can be used to modify a configuration that was created by Auto-Complete after the end user returns to the configuration to make changes. To determine whether a configuration was created by Auto-Complete, write your CX such that it queries the session property ConfigComplete(). To determine whether the end user is making changes to a configuration that was created by Auto-Complete, write your CX such that it queries the session property InAdjustMode().
The table Predefined Events for Binding describes the CX events that are available only in an FCE Model. The table also lists the event-specific parameters that you use as arguments when binding the method parameters of a Java class in a Configurator Extension Rule.
The following CX events are not supported in FCE Models:
postInstanceEditable
postInstanceNonEditable
onInstanceLoad
postInstanceLoad
onValidateEligibleTarget
postConnect
postDisconnect
onConfigLineType
onConfigValidate
For a complete list of events that are available in Models that use either the original configuration or the FCE, see the Oracle Configurator Developer User's Guide.
If you are converting existing Models to FCE Models, it is important to note that the FCE provides functionality that eliminates the need for some types of Configurator Extensions.
Additionally, any CXs that were created for a Model that used the Original Configurator Engine must be modified if you want to use them after converting the Model to use the FCE.
For general information about the Constraint Definition Language (CDL), refer to the Constraint Definition Language Guide.
This section lists CDL functions and operators that are available only in FCE Models, as well as some obsolete functions and operators.
The following functions are not available in FCE Models:
NOTTRUE function
ATAN2 operator
The table Operators Listed by Type describes operators and functions that are available only in FCE Models.
Operator Type | Operator | Description |
---|---|---|
Arithmetic function | AggregateSum (function) | Can be used in a Constraint, Default, or Search Decision, but only as a sub-expression. Syntax: AGGREGATESUM([NodeRef | NodePropRef]) where Noderef is a path-based reference to a node within each member instance of InstanceSet, and NodePropRef is a NodeRef with a numeric or logic property specified. The return value of the function is the sum of the values of NodeRef or NodePropRef for all the instances implied in the path. |
Other | Assign | Used only in Defaults and Search Decisions to force a node to be bound at a particular point in the specified sequence. If the Domain Ordering setting is specified in the node's details page, binding occurs according to this setting. Otherwise, the FCE's implicit binding method for this operator type is used. Syntax: ASSIGN(node) |
Other | IncMin | Used only in Defaults and Search Decisions. Similar to ASSIGN, but this operator overrides any explicit or implicit domain ordering method for binding the node and attempts a binding using a binary search with increasing minimum. This operator is valid for integers and decimals, including BOM items and Options with quantity. Applies to the node's default System Property when a System Property is not explicitly referenced (for example, State, Quantity, or Value). When used with BOM items, you can specify the RelativeQuantity property as an alternative. Syntax: INCMIN([node | node.Quantity() | numericnode.Value() | bomnode.RelativeQuantity()]) |
Other | DecMax | Used only in Defaults and Search Decisions. Similar to ASSIGN, but this operator overrides any explicit or implicit domain ordering method for binding the node and attempts a binding using a binary search with decreasing maximum. This operator is valid for integers and decimals including BOM items and Options with quantity. Applies to the node's default System Property when a System Property is not explicitly referenced (for example, State, Quantity, or Value). When used with BOM items, you can specify the RelativeQuantity property as an alternative. Syntax: DECMAX([node | node.Quantity() | numericnode.Value() | bomnode.RelativeQuantity()]) |
Other | MinFirst | Similar to ASSIGN, but this operator temporarily overrides any explicit or implicit domain ordering method for the node and attempts a binding using a linear search beginning with the node's specified minimum value. Used only in Defaults and Search Decisions. Valid for integers only. Syntax: • MINFIRST(node) |
Other | MaxFirst | Similar to ASSIGN, but this operator temporarily overrides any explicit or implicit domain ordering method for the node and attempts a binding using a linear search beginning with the node's specified maximum value. Used only in Defaults and Search Decisions. Valid for integers only. Syntax: • MAXFIRST(node) |
Arithmetic | Add ... To | Specifies addition of a numeric value to a Total, Resource, Numeric Feature, Option quantity, ... or the minimum or maximum number of component instances that are allowed at runtime. Calculation of the numeric value can involve Constants, Boolean values, Numeric Features, Option quantities, mutable System Properties, Totals, ... the minimum and maximum number of instances, and the instance count. Syntax: ADD n TO x |
Arithmetic | Subtract ... From | Specifies subtraction from a numeric value to a Total, Resource, Numeric Feature, Option quantity, ... or the minimum or maximum number of component instances that are allowed at runtime. Calculation of the numeric value can involve the same nodes and objects listed in "Add ... To", above. Equivalent to ‘ADD –(n) TO x’ Syntax: SUBTRACT x FROM y |
Logical | SubSetOf | Can be used in a Constraint, Default Decision, or Search Decision as a conditional expression or a top-level constraint. Returns Boolean True or False. In the FCE, this operator is only supported between two ports (Connectors, InstanceSets, or computed ports). Syntax: port1 SUBSETOF port2 For more information, seeSubSetOf and Union Operators. |
Other? Logical? | Union | Can be used in a Constraint, Default Decision, or Search Decision, but only as a sub-expression. Returns the union of the members of all specified ports. The return value can be used as an argument of type port in an enclosing expression. Syntax: UNION(port1, port2 ..., portn) For more information, seeSubSetOf and Union Operators. |
SubSetOf Operator
For an overview of the SubSetOf operator, see the table Operators Listed by Type.
Consider an expression of the form:
port1 SUBSETOF port2
When such an expression using the SubSetOf operator returns True, the expression constrains the members of port1 to be a subset of the members of port2. (An identical set also qualifies). If the port is an InstanceSet, the members are the contained Component Instances or Model Instances. If the port is a Connector, the members are the connected Model Instances.
For example, when the following expression is True, it states that the target of Connector-1 must be one of the instances belonging to InstanceSet-1:
‘Connector-1 SUBSETOF InstanceSet-1'
Membership in an InstanceSet is exclusive, therefore the following expression will prevent any instances contained in InstanceSet-2 from occurring in InstanceSet-1:
‘InstanceSet-1 SUBSETOF InstanceSet-2’
However, the following expression will succeed if all the target instances of Connector-1 are also assigned to Connector-2:
‘Connector-1 SUBSETOF Connector-2’
Note: A port is a variable whose domain is a set of Models that is contained by or associated with the Model where the port is declared. The FCE supports two types of port variables, which can connect to existing Model instances or generate new ones as needed. One type is an InstanceSet variable, which represents a composition relationship to sub-components. The other type is a ConnectorSet variable, which represents an association relationship to peer Model instances. Therefore, members of InstanceSets are mutually exclusive, while ConnectorSets do not have such restriction. In other words, an instance can be a member of multiple ConnectorSets, but it can be a member of only one InstanceSet.
UNION Operator
For an overview of the Union operator, see the table Operators Listed by Type.
When using this operator, the port operands can be InstanceSets, Connectors, or a combination of the two, as long as they both have the same target type – that is, the target model of a Connector or of an instantiable Model Reference, or the Component identity of an instantiable Component.
An Instance Set representing an instantiable Component (as opposed to a Model Reference) can only participate in a UNION when all of the other operands are the same instantiable Component in a different instance of the parent Model.
For example, your Model has the following structure:
M1 |--C1 (0,n) |->M2 (0,n) |--C2 (0,n) |->M3 (1, 1) |--C3 (0,n) |->M3’ (1, 1) |--C3 (0, n)
Note: Models M2, M3, and M3' are referenced by Model M1.
In this example, the UNION operation is valid on M3.C3 and M3’.C3, since they have the same Component identity in two different (fixed) instances of M3. The UNION operation would also be valid on M2(m).C2 and M2(n).C2, if it were possible to refer to specific instances of M2 when defining the Model's structure in Configurator Developer, but this is not the case. Therefore, no other Component in Model M1 is a valid participant in a UNION.
In a Model that uses the Original Configurator Engine, comparison operators such as equals, not equals, greater than, less than, and so on can be used only in conditional sub-expressions. For example:
IF (x < y) THEN ...
In an FCE Model, you can also use comparison operators as "top-level" constraints. which means they do not have to be used in a sub-expression. For example, the following expression can constitute an entire rule definition, constraining x to be less than y:
x < y
Rule import, which is the ability to import configuration rules in CDL format into the CZ schema, applies to FCE Models as well as to Original Configurator Engine (OCE) Models.
The general procedure for rule import is the same for FCE Models as for OCE Models. The procedure for OCE Models is described in the section on Rule Import in the Oracle Configurator Implementation Guide. The only difference for FCE Models is that you must populate several columns in the table CZ_IMP_RULES in addition to the columns listed in the Implementation Guide. The additional columns required for FCE rule import are as follows:
CLASS_SEQ (nullable, type NUMBER): The sequence number for the rule within its current Rule Class. Values for this number should not have any decimal part. For background, see Specifying a Sequence for Defaults and Search Decisions.
Within each Rule Class (RULE_CLASS) for the specified Model (DEVL_PROJECT_ID), each rule must have a unique class sequence number (CLASS_SEQ).
A value should be provided only for FCE Models. A value is mandatory if CONFIG_ENGINE_TYPE is 'F' and RULE_CLASS is either 1 or 2. The value should be null if RULE_CLASS is 0 or null.
CONFIG_ENGINE_TYPE (nullable, type VARCHAR2(1)): The Configurator Engine Type of the Model into which you are importing rules.
The valid values are:
F - Fusion (FCE)
L - Original (OCE/LCE)
The value must be 'F' for FCE Models.
RULE_CLASS (nullable, type NUMBER): The numeric identifier of the Rule Class of the rule. For background, see Rule Classes].
The valid values are:
0 - Constraint
1 - Default
2 - Search Decision
A value should be provided only for FCE Models. A value is mandatory if CONFIG_ENGINE_TYPE is 'F'. The value should be null if CONFIG_ENGINE_TYPE is 'L'.
For details on CZ_IMP_RULES and other Oracle Configurator tables, see the Oracle Integration Repository.
Note: The CZ schema for this release also includes two nullable columns that are not used for rule import: ACCUMULATOR_FLAG and TOP_LEVEL_CONSTRAINT_FLAG. Do not populate these columns, and ignore any values that might appear in them after the rule import process.
The messages related to rule import for the FCE are described in the table Validation Messages for FCE Rule Import, along with the error or warning conditions that can trigger the messages. Some messages can be triggered by more than one condition. These messages appear after the import in CZ_IMP_RULES.MESSAGE.
Message | Error or Warning Conditions |
---|---|
Invalid Class Sequence |
|
Invalid Configurator Engine Type |
|
Combination of Configurator engine type, Rule Class and Class Sequence is invalid |
|
Invalid Rule Class |
|
Custom Rule Violation Messages are not supported for Accumulator Rules |
|
Rule Class for Accumulator and Compatibility statements should be Constraint |
|
Operator &OP requires Rule Class of either Default or Search Decision. |
|
This section describes the UI Content Templates that are available only when editing an FCE Model, and additional content that is available in various UI templates when the FCE is enabled. For more information about creating and editing User Interfaces, see the Oracle Configurator Developer User's Guide.
When the FCE is enabled, by itself or in addition to the OCE, UI Master Templates include settings and content that is specific to the FCE. For details about enabling the FCE, see CZ: Enable Configurator Engine.
Following is a complete list of settings and content that appears in a UI Master Template when the FCE is enabled:
Pagination and Layout: This section contains the Enable Auto-Override for Conflicts setting, and this setting is selected by default.
For more information, see Auto-Override.
Non-BOM Content Custom Settings: This page contains separate settings for specifying which templates to use when displaying the following content at runtime:
Integer Features (default is Integer Input with Range Display)
Decimal Features (default is Decimal Input with Range Display)
Single-Instance Connectors (default is Connection Control)
Multiple-Instance Connectors (default is Connection Management Table)
Utility Templates: This section contains the following settings:
Instance Chooser (default is Instance Chooser Page)
Auto-Complete Status (default is Auto-Complete Status Dialog)
Required Messages: This section contains settings for specifying which UI Content templates to use when displaying required messages at runtime. Separate sections are provided for Models that use the Original Configurator Engine and Models that use the Fusion Configurator Engine.
Optional Messages: This section contains settings for specifying which UI Content templates to use when displaying optional messages at runtime. The Undo Status setting is relevant only for FCE Models.
Images: Following is a summary of how this section changes when the FCE is enabled (except where indicated):
The Not Selected setting changes to Selectable (this is true whether or not the FCE is enabled).
You can specify which images are used to display Enhanced Check Boxes and Enhanced Radio Buttons with a status of Recommended (Proposed Selected) and Not Recommended (Proposed Excluded).
In the Status Indicator Images region, you can specify which images are used to indicate options with a status of Recommended or Not Recommended.
In the Status Indicator Images region, you can specify which images are used to indicate options with a status of Proposed, Changed, Input Required, and Input Error.
For more information about the images that are used by default, see Runtime Icons and Images.
For details about the UI Content Templates that are used by default, see User Interface Content Templates.
When the FCE is enabled, by itself or in addition to the OCE, additional UI Content Templates are available for use. For details about enabling the FCE, see CZ: Enable Configurator Engine.
This section includes the following sections:
The UI Content Templates in this section are located in the Control Templates folder in the Main area of the Repository. They are also available when you are working in a custom UI Master Template and are selecting templates in either the BOM Content Custom Settings page or the Non-BOM Content Custom Settings page.
This template displays an input field for an Integer Feature at runtime, with text indicating the range of values that the field will accept. For example, if an Integer Feature's Minimum is set to 1 and its Maximum is set to 9 in Configurator Developer, then the text below the input field appears as follows:
Range: 1 to 9
When the Feature is bound (by Auto-Complete, for example), the text no longer appears.
The predefined Integer Input with Range Display template is located in the Value Display & Input subfolder in the Control Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template when defining custom settings for displaying non-BOM content, and it is the default for the Integer Features setting.
This template displays an input field for a Decimal Feature at runtime, with text indicating the range of values that the field will accept (the Feature's domain). For example, if a Decimal Feature's Minimum is set to 1.5 and its Maximum is set to 4.9 in Configurator Developer, then the text below the Feature's input field appears as follows:
Range: 1.5 to 4.9
When the Feature is bound (by Auto-Complete, for example), the text no longer appears.
The predefined Decimal Input with Range Display template is located in the Value Display & Input subfolder in the Control Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template when defining custom settings for displaying non-BOM content, and it is the default for the Decimal Features setting.
When the FCE is enabled, the following Item Selection Table templates are available:
Single Select BOM Item Table with Quantity and Range Display
Single Select BOM Item Table with Header, Quantity and Range Display
Multi-Select BOM Item Table with Quantity and Range Display
Multi-Select BOM Item Table with Header, Quantity and Range Display
Single Select Counted Options Table with Quantity and Range Display
Multi-Select Counted Options Table with Quantity and Range Display
The content and appearance of these templates is very similar. Each template consists of a table with columns labeled Select, Quantity, Item, and Description, and each option's valid input range (domain) is displayed in the Quantity column (for example, "Range: 0 to 10").
The single-select templates contain a radio button in the Select column, while the multi-select templates provide a check box.
Which template is used by default depends on whether the Model node allows only one or multiple of its child options to be selected, and whether the node is a or a BOM item (for example, a BOM Option Class).
The Content Templates listed above for single and multi-select Counted Options are not used by default in any UI Master Templates. The default templates do not include the item's valid input range at runtime, so if you want to display the input range for Counted Options, create a custom UI Master Template and specify one of the templates listed above for the Single Select with Option Quantity or Multi-Select with Option Quantity setting.
For a definition of the term "relative quantity", see BOM Nodes.
Procedure
The BOM Item Selection Table templates listed in this section display each BOM item's absolute Quantity, Minimum Quantity, and Maximum Quantity. If you want to display a BOM item's relative quantities at runtime:
Copy one of the predefined BOM Item Selection Table templates listed above, and then open it for editing.
Open the 'Quantity' Text Input element for editing, and then bind it to AssociatedModelNode.RelativeQuantity().
Set the Text Expression for the range display hint to "Range: &MinRelQuantity to &MaxRelQuantity".
Click Display Condition, and then select Associated Model Node as the Object, and select IsBoundRelQuantity from the Property list.
In the Condition section, select Is and set Value to False.
The full definition of the display condition is:
AssociatedModelNode.IsBoundRelQuantity() Is False
Save the changes.
This template displays a BOM item's current status and valid input range (domain). For example:
Status: Selectable Quantity ______ (Range: 0 to 10)
The UI Content Templates in this section are available when you are working in a custom UI Master Template and are selecting templates in the Utility Templates section.
For an overview of Auto-Complete, see Auto-Complete.
The Auto-Complete Status Dialog appears at runtime after Auto-Complete has finished processing. This page appears when Auto-Complete is invoked:
By explicit end-user action, such as by clicking the Auto-Complete button
By implicit end-user action, such as by clicking the Finish action, when the configuration does not contain any items that require end-user input.
In this case, the Auto-Complete Status Dialog appears only when Auto-Complete:
Fails
Results in changes to the orderable configuration
Results in the addition of new Text Features that require end-user input (because such Features cannot be resolved by Auto-Complete)
or
Results in new validation failures (such as from a post-Auto-Complete Configurator Extension)
If Auto-Complete is successful, then the Auto-Complete Status Dialog provides a summary of the configuration and indicates any changes that were made (an icon appears next to each changed item in the Configuration Summary table).
If Auto-Complete succeeds but the process created one or more required Text Features or invalid items, then the page lists all items that require end-user input or have validation failures. Each incomplete or invalid item appears as a link that the end user can use to navigate to the page containing the item.
If Auto-Complete fails, then this page displays a message similar to the following:
Error The configuration could not be completed. A solution could not be found that is compatible with all of your selections. Please make some changes and try again.
To learn which options are available to the end user in each scenario, see Auto-Complete Status Button Bar.
The Auto-Complete Status Dialog template is located in the Utility Templates folder in the Main Area of the Repository. This template is the default for the Auto-Complete Status setting in a predefined UI Master Template. In a custom UI Master Template, you can select this template for use in the Utility Templates section.
This template allows the end user to select an existing, unassigned instance to add to an Instance Set. The Instance Chooser Page is displayed when the user invokes the Add Instance or Add and Go to Instance action and there are unassigned, configured, or connected instances of the same type in the instance pool (see The Unassigned Instance Pool). In this case, the end user selects an instance from the list, and Oracle Configurator adds it to the Instance Set.
If there are no instances of the same type in the instance pool when an end user invokes either Add Instance or Add and Go to Instance, then Oracle Configurator does not display the Instance Chooser Page. In this case, Oracle Configurator simply creates an entirely new instance (and navigates to the new instance, when Add and Go to Instance is invoked).
The predefined Instance Chooser Page template is located in the Utility Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template for use in the Utility Templates section, and it is the default for the Instance Chooser setting.
For more information, see Instance Management.
This template displays a list of existing connections for a Multiple-Instance Connector (see Connectors). It includes controls that enable the end user to add new connections and remove (disconnect) existing connections.
This template is the default for the Multiple-Instance Connectors setting in a UI Master Template.
The UI Content Templates in this section are located in the Message Templates folder in the Main area of the Repository. They are also available when you are working in a custom UI Master Template and are selecting templates in the Message Templates section.
This template appears when an end user clicks Finish at runtime and at least one item requires end-user input. It displays following message at the top of a containing one or more required, invalid, or unbound options:
Input Required Please complete all required inputs before finishing the configuration.
An icon also appears next to each item that requires end-user input.
This template is the default for the Input Required on Finish setting, which is available in all UI Master Templates and in the UI Definition.
For more information, see:
The predefined Input Required template is located in the Message Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template for use in the Message Templates section, and it is the default for the Input Required on Finish setting.
This template is the default for the Input Required on Auto-Complete setting in the UI Master Template and in the UI Definition.
This template displays a page containing links to each option that requires input before the end user can invoke the Auto-Complete process. The end user can navigate to each option that requires input using links provided, click a button to return to the configuration, or save the configuration for later.
The text that appears on this page by default is similar to the following:
The configuration cannot be completed at this time. The following items require your input: Basic Options : How much memory do you require? Basic Options : Do you want to be able to copy DVDs? Basic Options : Do you want a flat screen monitor?
For more information, see Require End-User Input Setting
The predefined Input Required Dialog Page template is located in the Message Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template for use in the Message Templates section, and it is the default for the Input Required on Auto-Complete setting.
This template references the Input Required Dialog Button Bar.
This message is displayed when a conflict at runtime is the direct result of an end user's action, such as selecting an option or entering a value. (The term conflict is defined in Conflict Handling and Resolution.) The Auto-Override for Conflicts setting in the UI Definition controls whether this message includes the consequences of an override. For example:
Confirming this action will undo the following: * Select RAM 1GB * Set 'Will you use this computer for home use?' to 'No'
When Auto-Override is enabled, clicking the OK button (Override action) returns the end user to the configuration page where the conflict occurred. When Auto-Override is disabled, the message contains a Continue button instead of an OK button, and clicking Continue displays the Confirm Override Dialog Page.
For more information about which buttons may be displayed at runtime when a User Request Conflict occurs, see Basic Conflict Button Bar.
The predefined User Request Conflict Dialog Page template is located in the Message Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template for use in the Message Templates section, and it is the default for the User Request Conflict setting.
For more information about Auto-Override, see Auto-Override
For background information, see Fundamental Conflict.
This message appears when launching a configuration when the root of the configuration model is overconstrained. Fundamental Conflicts should be discovered during unit testing and resolved before a configuration model is deployed in a production environment.
The text of the Fundamental Conflict Message is similar to the following:
Error in Configuration Model The model is overconstrained. It is not possible to continue.
The Fundamental Conflict Message template cannot be viewed or modified in Oracle Configurator Developer.
This message contains information about how to resolve a conflict that was caused by the end user's action (for example, selecting an option or entering a value). This message is displayed at runtime when Auto-Override is disabled and the end user clicks Continue in the User Request Conflict Dialog Page.
If the override succeeds, the Confirm Override message displays a list of the prior requests that were removed, and allows the user to confirm or cancel the request that caused the conflict. If the override fails, this message notifies the user that overriding the conflict is not possible. In this case, the end user has no choice but to cancel the override and then return to the configuration.
The predefined Confirm Override Dialog Page template is located in the Message Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template for use in the Message Templates section, and it is the default for the Confirm Override setting.
For more information, see Auto-Override.
This template references the Confirm Override Button Bar.
This message appears at runtime when an end user clicks Undo after Auto-Complete has finished processing. The Undo Auto-Complete action rolls back all changes to the configuration that were made by Auto-Complete and returns the end user to the page from which Auto-Complete was invoked (either by clicking Finish or Auto-Complete).
The default text of this message is similar to the following:
Information: Undo was successful.
The Undo button appears in the Auto-Complete Status Dialog. See the description of that template for more information.
The predefined Undo Status Message Box template is located in the Message Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template for use in the Message Templates section, and it is the default for the Undo Status setting.
The UI Content Templates in this section are located in the Button Bar Templates folder in the Main area of the Repository. They are also available when you are working in a custom UI Master Template and are selecting templates in the Utility Templates section.
This template is used by the Input Required Dialog Page. This template consists of the following buttons:
Return to Configuration: Returns the end user to the configuration session.
Save for Later: Saves the incomplete configuration and ends the configuration session.
The predefined Input Required Dialog Button Bar template is located in the Button Bar Templates folder in the Main Area of the Repository. This template is not available for use in a UI Master Template.
This template is used by the Auto-Complete Status Dialog. It consists of buttons that appear after Auto-Complete has finished processing. The buttons that this template displays varies based on the result of the Auto-Complete process.
For example:
If Auto-Complete succeeds and the configuration is complete, then the following buttons are displayed: Undo Auto-Complete; Return to Configuration; Finish.
Clicking Undo returns the configuration to the state it was in before running Auto-Complete. Clicking Return to Configuration enables the end user to modify the completed configuration. Clicking Finish saves the configuration and returns the end user to the host application.
If Auto-Complete succeeds but the configuration is not complete, then the following buttons are displayed: Undo; Return to Configuration; Save for Later.
If Auto-Complete fails, then the following buttons are displayed: Return to Configuration; Save for Later.
The predefined Auto-Complete Status Button Bar template is located in the Button Bar Templates folder in the Main Area of the Repository. This template is not available for use in a UI Master Template.
Tip: By default, the Auto-Complete Status Button Bar - and by extension the Undo Auto-Complete button - appears only in the Auto-Complete Status Dialog. If you want to add an Undo Auto-Complete button to a custom UI template, define a display or enabled condition for the button that uses the System Property InAdjustMode. For example, if you define the following display condition, then the button is displayed only when ConfigurationSession.InAdjustMode is True:
Object: Session Data Property: InAdjustMode Comparison: Is Value: True
This template is used only by the Generic Processing Page with Stop Button template. It consists of a Stop button that the end user can use to cancel a long-running process. For details, see Generic Processing Page with Stop Button.
The predefined Cancel Processing Button Bar template is located in the Button Bar Templates folder in the Main Area of the Repository. Since the processing page templates cannot be customized, you cannot use this button bar in your own custom User Interfaces.
This template is used by the User Request Conflict Dialog Page template. The buttons that are displayed at runtime may change depending on whether Auto-Override is enabled and, if it is, whether the override was successful.
For example:
If Auto-Override is enabled and the override succeeds, then the following buttons are displayed: OK; Cancel.
Clicking OK overrides the conflict, while clicking Cancel cancels the request.
If Auto-Override is enabled and the override fails or the conflict could not be overridden, then only a Cancel button is displayed.
If Auto-Override is disabled, then the following buttons are displayed: Continue; Cancel.
Clicking Continue overrides the conflict, while clicking Cancel cancels the request.
The predefined Basic Conflict Button Bar template is located in the Button Bar Templates folder in the Main Area of the Repository.
This template is used by the Confirm Override Dialog Page. If the override was successful, an OK and a Cancel button are displayed. The end user can either click OK to confirm the message, or Cancel to cancel the override request.
If the override failed, only a Cancel button is displayed, and the end user's only option is to cancel the request.
The predefined Confirm Override Button Bar template is located in the Button Bar Templates folder in the Main Area of the Repository.
This template is used by the Instance Chooser Page. It consists of Cancel and Apply buttons that enable the end user to either cancel or confirm the action of adding an instance to an Instance Set.
The predefined Instance Chooser Button Bar template is located in the Button Bar Templates folder in the Main Area of the Repository.
This template displays the buttons that appear in the Configuration Summary page, and it is used by the Configuration Summary templates. The buttons that are displayed at runtime depend on the status of the configuration.
For example:
If the configuration is complete, then the following buttons are displayed: Return to Configuration; Finish.
For details about the Finish button and related configuration flow, see Finish Configuration.
If the configuration is incomplete, but there are no invalid items or items that require input, then the following buttons are displayed: Return to Configuration; Finish; Save for Later.
Clicking the Save for Later button saves the incomplete configuration and ends the configuration session.
If the configuration is incomplete, but there are invalid items or items that require input, then the following buttons are displayed: Return to Configuration; Save for Later.
The predefined Preview Page Button Bar template is located in the Button Bar Templates folder in the Main Area of the Repository. In a custom UI Master Template, you can select this template for use in the Utility Templates section, and it is the default for the Preview Page Button Bar setting.
The UI Content Templates in this section are available when you are working in a custom UI Master Template and are selecting templates in the Other Templates section.
For background on the use of processing pages, see Displaying a Processing Page at Runtime.
This is the default template for the UI actions that support processing pages. Those UI actions are listed in Displaying a Processing Page at Runtime.
The page template includes a default "busy" icon and the following text elements, in which you enter text that gives the end user information about the long-running action:
Page Title: This text appears in the title bar of the window displaying the processing page, and in the page heading.
Main Message: This text appears above the busy icon. The text is rendered in boldface.
Processing Caption: This text appears below the busy icon.
There is no default text for these text elements. You must provide text, or the text elements will be empty at runtime.
Apart from the custom text described here, you cannot customize the appearance of the processing page.
The predefined Generic Processing Page template is located in the Other Templates folder in the Main Area of the Repository.
For background on the use of processing pages, see Displaying a Processing Page at Runtime.
This template is the same as the Generic Processing Page, but it includes a Stop button that enables the end user to interrupt the Auto-Complete Configuration action and return to the runtime UI from which it was invoked, without changing the configuration. The Stop button undoes all of the selections made by the current Auto-Complete action.
This template can be specified by selecting it as the Processing Page Template for one of the UI actions that support processing pages. Those UI actions are listed in Displaying a Processing Page at Runtime. (The default template for such UI actions is the Generic Processing Page.)
This template is intended for use with larger or more complex FCE Models that might require longer processing.
The predefined Generic Processing Page with Stop Button template is located in the Other Templates folder in the Main Area of the Repository.
This section describes how existing UI Content Templates change after converting a Model to use the FCE.
When you convert a Model to use the FCE, the Combination Status region in all Summary Page UI Content Templates is replaced by a Messages region. This region appears at the top of the page and it contains textual information regarding the status of the configuration. For example, "No required or invalid items," "The configuration is not complete," or "The following items require your input before finishing the configuration." In the latter example, each item appears as a link that the end user can click to go directly to the page containing that item.
The lower portion of the Summary Page displays BOM-related nodes selected during the session. Any item that is in the Configuration Summary which is selected but has an unbound Quantity displays the range of the Quantity instead of a value.
When a Model uses the FCE, any selected options that represent non-BOM nodes do not appear in the Configuration Summary page. This is true whether or not the Orderable setting is selected in a node's details page in Configurator Developer. For details about this setting, refer to the section on orderable items in the Oracle Configurator Developer User's Guide.
Instance List Layout Regions for OCE Models are described in the Oracle Configurator Developer User's Guide. An Instance List Layout Region displays content from optional or instantiable component instances on a Page that is the parent of those instances. There are some differences in the way that you use an Instance List Layout Region with FCE Models.
At runtime, an Instance List for an FCE Model can include placeholders, which also occur in Instance Management Tables for FCE Models. (For information on placeholders, see UI Actions in Instance Management Tables.) Since placeholders usually represent generic instances (which do not have any children), there are no child node details available to display on the parent page of the Instance List. Trying to show the child node details for a placeholder instance in an Instance List region can result in unexpected behavior at runtime. Consequently, you should define, within your Instance List region, a Switcher Region that contains two Case Regions, each based on a Switcher condition using the Associated Model Node's property IsPlaceholder. Then define these Case Regions to display an appropriate set of UI elements depending on whether or not the instance is a placeholder. If IsPlaceholder is true, that Case Region should only include the appropriate controls for a generic instance, such as Configure and Delete. If IsPlaceholder is false, then that Case Region can include other details for the instance.
The Configure (Drilldown to SubComponent) action behaves differently for a placeholder instance under an Instance List Layout Region. When the user chooses Configure, it activates the placeholder. If there are instances available in the instance pool, then the Instance Chooser page is presented. When an instance is chosen from the Instance Chooser, the user returns to the Instance List on the parent page, rather than to the page for the instance itself (as happens in an Instance Management Table). If there are no available instances, then the placeholder is replaced with a new identifiable instance, and remains in the Instance List on the parent page.
This section describes UI elements that are available only when using the FCE.
This element displays all instances (configured or connected) that can be added to an Instance Set. You can create this element in a UI Page, an Instance Management Template, and a Generic Template. This table is also included by reference in the Instance Chooser Page.
This element's Associated Model Node must be an instance set.
This element represents a Multiple-Instance Connector at runtime (for details, see Connectors).
You can create this element in a UI Page, a Connector Control Template, or a Generic Template. This element's Associated Model Node must be a Connector.
The table below describes the UI actions that are available when using the FCE.
Action | Description |
---|---|
Add Instance | See UI Actions in Instance Management Tables for a description of this action. |
Auto-Complete Configuration | Invokes Auto-Complete (the FCE search procedure) to bind all variables in the configuration and present a solution to the end user. This action is valid only when the end user is not in a nested transaction or a pending mode (for example, conflict processing). For details, see Auto-Complete Configuration. |
Cancel Processing | Cancels a long-running process (for example, Auto-Complete Configuration). Cancels a long-running process (for example, Auto-Complete Configuration). This action is valid only in a predefined template that supports the processing page (for example, the Generic Processing Page Template). You cannot use this action in your own custom User Interfaces. For more information, see Auto-Complete Configuration. |
Cancel Request | Rolls back any conflict override, cancels the current/original user request, and returns to the configuration. This action is valid while processing a conflict. For more information, see Conflict Handling and Resolution. |
Copy Instance | See UI Actions in Instance Management Tables for a description of this action. |
Configure Instance | See UI Actions in Instance Management Tables for a description of this action. |
Create Instance | Creates a new instance and adds it to the current instance set, as defined by the Associated Model Node of the UI element assigned to the action. After invoking this action, Oracle Configurator does not present the end user with the option to add an existing instance from the instance pool. For details, see Create Instance UI Action. |
Create and Go to Instance | Creates a new instance and adds it to the current instance set, then navigates to the UI page that represents that instance. After invoking this action, Oracle Configurator does not present the end user with the option to add an existing instance from the instance pool. For details, see Create and Go to Instance UI Action. |
Delete Instance | See UI Actions in Instance Management Tables for a description of this action. |
Override Conflict | If Auto-Override is enabled and override was successful, this action commits the override and returns the end user to the configuration. If Auto-Override is disabled, it invokes the override and displays an override status message. For more information, see Auto-Override. |
Remove Instance | See UI Actions in Instance Management Tables for a description of this action. |
Save and Exit | Saves and exits the configuration without invoking the Auto-Complete process. This action can be used whether or not the configuration is complete. This action is valid only when the end user is not in a nested transaction and the configuration is not a "pending" mode (for example, processing a conflict). |
Undo Auto-Complete | Rolls back all changes made to the configuration as a result of running Auto-Complete, and returns the end user to the page from which Auto-Complete was invoked. In order to perform the Undo Auto-Complete action, the configuration session must return True for one of the system properties AutoCompleteSuccessful or InAdjustMode. For details, see Auto-Complete Configuration. |
Some UI actions take longer than others to complete at runtime. For example, the Auto-Complete Configuration action may take several seconds or more before returning control to the end user. When such longer-running actions are invoked, you may want to display a "processing" page to inform your end users that a process is running in the background, and that they will be able to proceed when it is complete.
In Configurator Developer, you can choose which processing page to display at runtime when you assign certain UI actions to a UI element. The UI action must support the use of a processing page. The UI actions that support processing pages are the following:
Auto-Complete Configuration
This action is only available for FCE Models.
• Apply/Finish/Confirm
The Finish action supports processing pages.
Note: The processing page is only available for FCE Models. No processing pages are supported for Original Configurator Engine (OCE) Models.
The processing page is displayed at runtime when the following are true:
The end user invokes a supporting UI action in which the Display Processing Page setting is enabled
The amount of processing time for the action exceeds the limit previously specified by the profile option CZ: Processing Page Delay.
There is no default processing page for the Auto-Complete Configuration action. A default processing page (with no Main Message) is displayed for a long-running Finish action when you click an uncustomized Finish button.
If the processing for an action does not run long enough to invoke the processing page, then the page ordinarily displayed for the action appears. The Auto-Complete Configuration action ordinarily produces the Auto-Complete summary page, which allows the end user to undo the Auto-Completion, or to Return To Configuration in Adjust Mode. The Finish action ordinarily produces a configuration Confirmation page. However, Finish can invoke Auto-Complete on an incomplete configuration that does not contain any items that are invalid or require end-user input; in that case Finish displays the Auto-Complete summary page.
Procedure
To specify a processing page for a UI action:
Edit the details page for a UI element (such as a Custom Button).
For the element's Action, click Define.
In the UI action's Choose Action (or Define Action) page, under Session Control, choose one of the actions that supports the processing page. The supporting actions are listed elsewhere in this section.
Expand the Processing Page section.
The Processing Page section only appears when you select actions that support the processing page.
Select Display Processing Page, to enable the use of the Processing Page.
Optionally, for Processing Page Template, click Choose to select a different template.
You can accept the default template, which is the Generic Processing Page.
You can select the predefined Generic Processing Page with Stop Button template.
You can select any customized versions of those Processing Page templates that you have created.
Optionally, enter custom text for Page Title, Main Message, or Processing Caption. See Generic Processing Page for an explanation of these text elements on the template page.
Tip: The Main Message and Processing Caption are Formatted Text elements, so you can use simple HTML markup to format the text. See the Oracle Configurator Developer User's Guide for a list of HTML tags supported in Formatted Text elements.
Click Apply.
Your settings related to the processing page are retained when you copy or move a UI element
The table below lists the icons and images that are used to indicate an option's selection state and specific UI actions at runtime.
For details about how to change the default images that indicate selection state at runtime, see User Interface Master Templates.
Name | Description | Icon |
---|---|---|
Recommended Check Box (recommended_checkbox.gif) | An enhanced Check Box image for the ‘Proposed Selected’ state. | |
Recommended Radio Button (recommended_radio_button.gif) | An enhanced Radio Button image for the ‘Proposed Selected’ state. | |
Recommended Status (recommended_status.gif) | A status icon for the ‘Proposed Selected’ state. | |
Not Recommended Check Box (not_recommended_checkbox.gif) | An enhanced Check Box image for the ‘Proposed Excluded’ state. | |
Not Recommended Radio Button (not_recommended_radiobutton.gif) | An enhanced Radio Button image for the ‘Proposed Excluded’ state. | |
Not Recommended Status (not_recommended_status.gif) | A status icon for the ‘Proposed Excluded’ state. | |
Proposed Status (proposed_status.gif) | A status icon that indicates the associated item’s state or value is the result of either a Default or Search Decision. |
A User Interface's UI Definition contains information and settings that are specific to the FCE when the Model-level Configurator Engine setting is set to Fusion (in other words, when the UI belongs to an FCE Model).
In this case, the UI Definition also contains the Enable Auto-Override for Conflicts setting. The default value of this setting is determined by the Master Template that was used to generate the UI, but you can change it in the UI Definition. For more information, see Auto-Override.
Note: Auto-Override is always enabled in Models that use the Original Configurator Engine.
The Auto-Override for Conflicts setting also determines the value of the session property AutoOverrideEnabled at runtime. For details about this property, see Configuration Session Properties: Conflict Processing.
When the UI a belongs to an FCE Model, its UI Definition also contains settings that control which Button Bar, Utility Page, and Message UI Content Templates the UI uses at runtime. All templates and images that are used by default are determined by the UI Master Template that was used to generate the UI. You can select different templates and specify different images that are used to indicate options that have changed or still require end-user input.
For background about unit testing and the Model Debugger, see the Oracle Configurator Developer User's Guide.
Most of the information in the Oracle Configurator Developer User's Guide also applies when testing an FCE Model, but there are some exceptions. This section describes additional functionality and features of the Model Debugger that are available only when testing an FCE Model.
The Edit Totals and Resources setting is disabled when you launch the Model Debugger to unit test an FCE Model.
Tip: Open an FCE Model for editing and then test the Model using the Model Debugger while reading this section. Then, navigate to each area of the Model Debugger and note the icons, UI labels, and functionality described in the following sections.
When testing an FCE Model, the Model Debugger displays unique icons that indicate logic states that are available only in the FCE and other icons that identify whether an option was selected as a result of a Search Decision or by a Default.
Columns
The Configuration tab may contain the following additional or enhanced columns for FCE Models:
Logic State: This existing column displays new icons which indicate logic states that are available only in the FCE, and other new icons that identify whether an option was selected as a result of a Search Decision or by a Default. See Runtime Icons and Images
Input Required: This column replaces the Unsatisfied column used for Original Configurator Engine Models. The presence of an icon in this column indicates whether a node requires a value. See Require End-User Input Setting.
Range: When the associated node is unbound, this new column displays the node's minimum and maximum:
Value, for Numeric Features, Totals, and Resources
Quantity, for Feature Options and BOM nodes (all types)
Instances, for Components
Connections, for Connectors
Selections, for Option Features
Selections, for Boolean Features (False.. True)
When the associated node is bound, the Range column is blank.
To display this column in the Configuration tab, create a View and add it to the 'Columns Displayed' list.
This column appears in the Watch List by default.
Changed by Auto-Complete: An icon appears in this new column if Auto-Complete modified the item's value or selection state.
Controls
The Configuration tab includes the following UI controls for FCE Models:
Auto-Complete: This button invokes Auto-Complete. After Auto-Complete finishes processing, all Model interaction UI controls are read-only. To modify the configuration, click Adjust Configuration. To return the configuration to its previous state, click Undo Auto-Complete.
If any items in the configuration require end-user input, the Model Debugger displays a message and lists the invalid or required items. After addressing all invalid or required options in the configuration, you can invoke Auto-Complete again.
The Auto-Complete Configuration button appears in the Configuration tab by default.
Adjust Configuration: After running Auto-Complete, the configuration is in read-only mode and you must click this button to make any changes to the configuration.
You can also click Undo Auto-Complete while modifying a completed configuration, or click Auto-Complete Configuration again after making changes.
Undo Auto-Complete: This button is available after you click Auto-Complete Configuration, and it enables you to return the configuration to the state it was in before running Auto-Complete.
If a Connector allows multiple connections, the Value column in the Configuration tab contains the message "See Node Details." Click the Connector's name to view its details page and all of the connected target instances. For more information see Model Node Details Pages.
If any instances of the same type exist in the instance pool, clicking the icon in the Add Instance column in the same row as an instantiable component displays the Instance Chooser Page. In this case, you can either create a new instance or select one from the list unassigned instances. If no instances of the same type exist in the instance pool, clicking the icon in the Add Instance column creates a new instance of the component.
If the configuration is incomplete and does not contain any items that are invalid or require end-user input, clicking the Finish button invokes Auto-Complete. For more information, see Finish Configuration.
To display a Model node's details page, click the node's name in the Configuration tab.
The details page for each node includes information about the node's domain, such as the minimum and maximum value, quantity, selections, instances, and so on. Any Configurator Extension command events that are associated with the node also appear on a node's details page.
A Connector node's details page lists all component instances that are currently connected and all target instances that are available for connection.
A Connector node's details page also indicates:
Whether the Connector is a Reverse Connector
How many connections currently exist
The Minimum and Maximum Connections specified for the Connector in Configurator Developer (for Multiple-Instance Connectors)
The details page of any component that is the target of a Connector lists all currently connected components (in the 'Connections to this Instance' table).
In the Summary tab, an icon appears in the Status column to indicate how each node was added to the configuration. Unique icons indicate whether each item was added by the end user or by the propagation of a constraint, or if the item is a proposed selection (that is, it was added by either a Search Decision or a Default). To view the description of each icon, click Show Legend.
The Summary tab shows only items within the configuration that are orderable (that is, included on a sales order); therefore, any non-BOM items are not included.
If Auto-Complete was invoked during the unit testing session, then the Summary tab includes the Adjust Configuration and Undo Auto-Complete buttons. Click Adjust Configuration to modify the completed configuration. For more information about Undo Auto-Complete, see Undo Auto-Complete.
In addition to the sub-tabs described in the Oracle Configurator Developer User's Guide, the Status tab contains the following sub-tabs: Input Required, Proposed Items, and User Requests.
The Input Required sub-tab displays all Features, Connectors, BOM Option Classes, and Text Features in the configuration that require end-user input. This column also appears in the Watch List table by default.
The Proposed Items sub-tab displays all items that Auto-Complete added to the configuration and items whose values were provided by Auto-Complete.
The User Requests sub-tab lists each item that you added to the configuration; items added to the configuration by Auto-Complete do not appear. This area also describes the action that occurred to add the item to the configuration. For example:
Name | Request |
---|---|
Integer Feature X | Set "Integer Feature X' to '27' |
BF1 | Select 'BF1' |
Note: If you upgraded from a previous release of Oracle Configurator, you may notice that the Status tab no longer contains an Unsatisfied Rules tab. This is because rules cannot be unsatisfied in an FCE Model.