Effectivity allows you to model a product that changes over time. The effectivity you assign to Model nodes and rules determines whether a node is available or a rule is active in a runtime Oracle Configurator, or when unit testing a configuration model from Configurator Developer. Oracle Configurator and Oracle Configurator Developer use the database date and time when evaluating an object's effectivity.
You control effectivity for a node or rule in Configurator Developer by indicating that it is either Always Effective or Never Effective, or by specifying either a date range or an Effectivity Set. You can also optionally assign one or more Usages to control effectivity of structure nodes and rules.
The root node of a Model is always effective, and its Effectivity settings are read-only. The Effectivity settings on a BOM Model References are also read-only because they are imported with the BOM Model. However, you can modify the effectivity on a Reference to a non-imported Model.
Effectivity also controls the availability of a Model publication to host applications. The application that is hosting the runtime Oracle Configurator specifies the date, time, and a Usage in an initialization message. All nodes that are not effective when the Model is invoked do not appear in the runtime UI, and all configuration rules that are not effective are ignored. However, it is important to note that ineffective Model nodes that have logic state (that is, Options, Option Features, all BOM nodes, and Boolean Features) are False at runtime. If such an ineffective node participates in a rule that is effective, it participates with a False logic state.
The effectivity for imported BOM nodes is defined as a date range in Oracle Bills of Material, and cannot be changed in Configurator Developer. You can specify an effective date range for a rule or any node created in Configurator
Developer. A date range may include both a start date and an end date (day, month and year) and time (hours, minutes, and AM or PM), or you can select either No Start Date or No End Date. (Selecting both No Start Date and No End Date is the same as selecting Always Effective).
Create an Effectivity Set to define an effectivity date range that can be shared by manyModel structure nodes and configuration rules simultaneously. When you modify an Effectivity Set's date range, the change affects all nodes and rules that are assigned to the Effectivity Set. Therefore, if you expect to use a specific effectivity date range for more than a very limited number of nodes, it is better to define and assign an Effectivity Set rather than specifying an effective date range for each node and rule in your Model.
You can assign Effectivity Sets to rules, Components, Features, Options, Totals, Resources, Model publications and References to non-imported Models. The effectivity assigned to imported BOM nodes is read-only in Configurator Developer, and can be changed only in Oracle Bills of Material. An Effectivity Set can be always effective, never effective, or effective only within the range of dates that you specify.
Like effective dates and Effectivity Sets, Usages provide a method of controlling the effectivity of Model structure, rules, and the availability of Model publications to a host application. A host application may pass a Usage as a parameter in its initialization message, but it is not required. You can assign Usages independently or in addition to date effectivity (in other words, either an explicit date range or an Effectivity Set).
Usages consist of any text string that you specify, and you create them in the Main area of the Repository. You can create a maximum of 64 Usages. By default, all Model structure nodes and any rules that you define are effective for all Usages. Setting a Usage on a node or rule means that it is effective for all Usages except the Usage(s) that you specify.
For example, Component A and Logic Rule X are effective for all Usages except the Usage called "Experienced User." At runtime, Oracle Order Management specifies this Usage in the initialization message. As a result, Component A does not appear in the UI and Logic Rule X is ignored.
Usages are a powerful tool for manipulating the effectivity of Model structure, rules, and Model publications based on a variety of business requirements. Therefore, be sure to plan for and implement Usages very carefully when developing configuration models. For example, it is not advisable to assign a Usage on a Reference to a required BOM Model because the item will not be available when the host application passes the Usage at runtime.
Following are some examples of how effectivity affects a configuration model in a runtime Oracle Configurator or when unit testing from Configurator Developer:
- Model structure nodes that are not effective do not appear, and therefore are not available for selection.
For example, a specific item in the Model will be obsolete as of May 1, 2004. You want to automatically discontinue that item as of that date so it will not be offered as an option to your end users. By specifying an effective end date of 05/01/2004 for the item, it no longer appears in the configuration model on that date or in any future configuration sessions.
- Configuration rules that are not effective are ignored (do not propagate) at runtime.
For example, your configuration model contains a Logic Rule that selects several options based on a guided buying or selling question. However, several of these options will not be available (are no longer effective) after the end of the fiscal year.
You define effectivity for the rule so it is ignored as of the date you specify. This prevents your end users from seeing any unnecessary warnings or error messages that may appear because some items are unavailable.
- Rules that contain ineffective participants may be unable to perform their intended actions at runtime.