Building a Configuration Model Using the Fusion Configurator Engine

This chapter covers the following topics:

Model Structure

This section describes Model structure settings and characteristics that are available only when using the FCE. It includes the following sections:

General Area of the Workbench

For background information about the General area of the Workbench, see the Oracle Configurator Developer User's Guide.

Model Details: Configurator Engine

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:

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:

The value of this setting is Fusion if the Model was:

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.

Model Report

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.

Model References

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.

Properties

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:

Model Node System Properties

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 Properties
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

Configuration Session Properties

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:

Refer to the tables below for details.

Configuration Session Properties: Configuration Status
Name Description Data Type Context
ConfigComplete Returns True if the configuration is complete:
  • No items exist with InputRequired = True

  • Configuration is valid

  • Configuration is bound

Boolean Global
HasItemsToAddress Returns True if any of the following conditions exist:
  • Session.InputRequired is True

  • Session.Valid is False

Boolean Global
InputRequired Returns True if the configuration contains any items with InputRequired = True. Boolean Global
InErrorMode Initially False; updated on each request for Finish or Auto-Complete. Set to True if Session.InputRequired() is True. Set to False if Session.InputRequired() is False. Boolean Global
AutoCompleteSuccessful Returns False before first Auto-Complete in a session; returns True when Auto-Complete succeeds in binding the configuration and False when it fails. Reverts to False on Undo Auto-Complete or Adjust Configuration. The state persists until the next Auto-Complete.

Note: Unbound Text Features that are User Input Required are ignored in computing this property. This means it is possible for AutoCompleteSuccessful to be True but ConfigComplete to be False.

Boolean Global
ConfigurationChangedByAC Returns True if Auto-Complete resulted in changes to the orderable items in the configuration (or their attributes) and/or the addition of an unbound User Input Required Text Feature and/or the configuration is invalidated by a post-Auto-Complete Configurator Extension. (Note: Changes in numeric attribute values from unbound to zero are ignored.) Reverts to False on Undo Auto-Complete. The state persists until the next Auto-Complete. Boolean Global
InAdjustMode Returns True if the configuration is in Adjust Mode (has Auto-Complete decisions in the request queue). Reverts to False on Undo Auto-Complete action. Boolean Global
ListPriceChangedByAC Returns True if TotalListPrice was changed as a result of the most recent Auto-Complete. Boolean Global
SellingPriceChangedByAC Returns True if TotalSellingPrice was changed as a result of the most recent Auto-Complete. Boolean Global
ATPChangedByAC Returns True if ATPRollup was changed as a result of the most recent Auto-Complete. Boolean Global
Configuration Session Properties: Conflict Processing
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.

Selection State

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.

Domain Ordering Setting

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:

Decimal Features:

UI Templates for Numeric Feature Domain Display:

By default, the following UI Content Templates display a Numeric Feature's domain at runtime:

Boolean Features:

Domain Ordering and Other Node Types

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.

Require End-User Input Setting

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:

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:

Text Features

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.

Counted Option Features

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:

You can use the Quantity System Property when defining rules.

Totals and Resources

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.

Initial Values

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.

BOM Nodes

This section describes some unique characteristics and runtime behaviors of BOM nodes in an FCE Model.

BOM Model References

The following points are specific to BOM Model References.

Connectors

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.

Multiple-Instance Connectors

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.

Reverse Connectors

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:

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:

  1. Open a Model for editing, and then create a Connector.

    See the Oracle Configurator Developer User's Guide for details.

  2. 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.

  3. 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.

  4. 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.

Connectors and Configuration Rules

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.

Effectivity

In an FCE Model, Effectivity settings are available for the following node types:

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).

Configuration 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.

Logic States

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.

Rule Classes

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 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 Types and Rule Classes
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

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.

Defaults

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:

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.

Search Decisions

Rules that you classify as Search Decisions are applied:

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.

Specifying a Sequence for Defaults and Search Decisions

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:

  1. From the Rules area of the Workbench, click Reorder Defaults or Reorder Search Decisions.

  2. Specify a new sequence number for one or more rules, and then click Update.

  3. Review the updated sequence. The Changed column indicates which rules you updated.

  4. If you are satisfied with the changes, click Apply.

    To cancel your changes and return to the Rules area of the Workbench, click Cancel.

Compatibility Rules

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

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:

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:

Configurator Extensions

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.

Predefined Events for Binding
Event Name Related To Description Event Parameter Type Event Binding Scope
preAutoComplete Configurator Extension Event dispatched just before the Auto-Complete process is initiated, either on request or implicitly in a Finish flow. None Global Only
postAutoComplete Configurator Extension Event dispatched just after Auto-Complete terminates, whether it succeeds or not. The status of the operation and the state of the configuration can be tested using session properties such asAutoCompleteSuccessful and ConfigComplete. None Global Only

The following CX events are not supported in FCE Models:

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.

Configurator Extensions and Converted Models

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.

Fusion Configurator Engine and the Constraint Definition Language

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:

The table Operators Listed by Type describes operators and functions that are available only in FCE Models.

Operators Listed by Type
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 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.

Comparison Operators

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 for Fusion Configurator Engine Models

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:

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.

Validation Messages for FCE Rule Import

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.

Validation Messages for FCE Rule Import
Message Error or Warning Conditions
Invalid Class Sequence
  • CLASS_SEQ is provided when RULE_CLASS is 0 (Constraint).

  • CLASS_SEQ is not provided when RULE_CLASS is 1 (Default) or 2 (Search Decision).

  • CLASS_SEQ is not unique for the specified Model and RULE_CLASS.

Invalid Configurator Engine Type
  • CONFIG_ENGINE_TYPE is not 'F' or 'L'.

Combination of Configurator engine type, Rule Class and Class Sequence is invalid
  • CLASS_SEQ or RULE_CLASS are provided when CONFIG_ENGINE_TYPE is 'L'.

Invalid Rule Class
  • RULE_CLASS is not provided when CONFIG_ENGINE_TYPE is 'F'.

  • RULE_CLASS is not 0, 1, or 2.

Custom Rule Violation Messages are not supported for Accumulator Rules
  • CONFIG_ENGINE_TYPE is 'F'

    and

    the rule is an Accumulator Rule

    and

    RULE_CLASS is not 0

    and

    CZ_IMP_RULES. REASON_TYPE is not 0 (rule name).

  • Note: Custom Rule Violation Messages are stored in CZ_LOCALIZED_TEXTS.LOCALIZED_STR.

  • For background on why Accumulator Rules do not support rule violation messages, see Accumulator Rules.

Rule Class for Accumulator and Compatibility statements should be Constraint
  • The statement rule definition in RULE_TEXT indicates that the imported rule is an Accumulator or Compatibility rule, and RULE_CLASS is not 0 (Constraint).

Operator &OP requires Rule Class of either Default or Search Decision.
  • RULE_CLASS is 0 (Constraint) and the statement rule definition in RULE_TEXT includes one of the operators ASSIGN, INCMIN, DECMAX, MINFIRST, or MAXFIRST.

  • Note: The message token &OP is replaced by the operator detected in the import record.

Creating and Editing a User Interface

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.

User Interface Master Templates

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:

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.

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:

Control Templates

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.

Integer Input with Range Display

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.

Decimal Input with Range Display

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.

Item Selection Tables with Quantity and Range Display

When the FCE is enabled, the following Item Selection Table templates are available:

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.

Displaying BOM Relative Quantity at Runtime

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:

  1. Copy one of the predefined BOM Item Selection Table templates listed above, and then open it for editing.

  2. Open the 'Quantity' Text Input element for editing, and then bind it to AssociatedModelNode.RelativeQuantity().

  3. Set the Text Expression for the range display hint to "Range: &MinRelQuantity to &MaxRelQuantity".

  4. Click Display Condition, and then select Associated Model Node as the Object, and select IsBoundRelQuantity from the Property list.

  5. In the Condition section, select Is and set Value to False.

    The full definition of the display condition is:

    AssociatedModelNode.IsBoundRelQuantity() Is False
    
  6. Save the changes.

BOM Item Status Region with Quantity and Range Display

This template displays a BOM item's current status and valid input range (domain). For example:

Status: Selectable    Quantity ______ (Range: 0 to 10)

Utility Templates

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.

Auto-Complete Status Dialog

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:

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.

Instance Chooser Page

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.

Connection Management Table

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.

Message Templates

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.

Input Required Message Box

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.

Input Required Dialog Page

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.

User Request Conflict Dialog Page

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

Fundamental Conflict Message

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.

Confirm Override Dialog Page

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.

Undo Status Message Box

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.

Button Bar Templates

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.

Input Required Dialog Button Bar

This template is used by the Input Required Dialog Page. This template consists of the following buttons:

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.

Auto-Complete Status Button Bar

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:

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

Processing Page Button Bar

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.

Basic Conflict Button Bar

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:

Confirm Override Button Bar

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.

Instance Chooser Button Bar

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.

Preview Page Button Bar

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:

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.

Other Templates

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.

Generic Processing Page

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:

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.

Generic Processing Page with Stop Button

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.

Changes to Existing User Interface Content Templates

This section describes how existing UI Content Templates change after converting a Model to use the FCE.

Configuration Summary Templates

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.

Layout Regions

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.

User Interface Elements

This section describes UI elements that are available only when using the FCE.

Instance Chooser Table

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.

Multiple-Instance Connector Control

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.

User Interface Actions

The table below describes the UI actions that are available when using the FCE.

User Interface Actions
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.

Displaying a Processing Page at Runtime

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:

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:

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:

  1. Edit the details page for a UI element (such as a Custom Button).

  2. For the element's Action, click Define.

  3. 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.

  4. Expand the Processing Page section.

    The Processing Page section only appears when you select actions that support the processing page.

  5. Select Display Processing Page, to enable the use of the Processing Page.

  6. Optionally, for Processing Page Template, click Choose to select a different template.

  7. 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.

  8. Click Apply.

Your settings related to the processing page are retained when you copy or move a UI element

Runtime Icons and Images

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.

Icons and Images Used at Runtime
Name Description Icon
Recommended Check Box (recommended_checkbox.gif) An enhanced Check Box image for the ‘Proposed Selected’ state.

the picture is described in the document text

Recommended Radio Button (recommended_radio_button.gif) An enhanced Radio Button image for the ‘Proposed Selected’ state.

the picture is described in the document text

Recommended Status (recommended_status.gif) A status icon for the ‘Proposed Selected’ state.

the picture is described in the document text

Not Recommended Check Box (not_recommended_checkbox.gif) An enhanced Check Box image for the ‘Proposed Excluded’ state.

the picture is described in the document text

Not Recommended Radio Button (not_recommended_radiobutton.gif) An enhanced Radio Button image for the ‘Proposed Excluded’ state.

the picture is described in the document text

Not Recommended Status (not_recommended_status.gif) A status icon for the ‘Proposed Excluded’ state.

the picture is described in the document text

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.

the picture is described in the document text

User Interface Definition

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.

Unit Testing a Configuration Model Using the Model Debugger

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.

Configuration Tab

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:

Controls

The Configuration tab includes the following UI controls for FCE Models:

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.

Model Node Details Page

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:

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).

Summary Tab

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.

Status Tab

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.