14Configuration Constraints

About Configuration Constraints

A configuration constraint defines how two items in a customizable product or a product with attributes are related. For example:

  • In a product with components, Component A and Component B are mutually exclusive. If the user picks one, then you want to prevent them from picking the other. One way you can do this is by writing a configuration constraint: Component A excludes Component B. The Constraints view provides a constraint template to help you write this constraint.

  • A product with attributes comes in a number of different colors and sizes. However, the color red is not available in the XL size. One way you can prevent users from picking a product with the color red and the XL size is to write a configuration constraint: Red excludes XL.

Constraint templates are constraint statements where you replace variables in the statement to create a configuration constraint. The Constraints view provides constraint templates for the most common types of configuration constraints. You can also create your own constraint templates.

In the Constraints view, you create a configuration constraint by first selecting a constraint template. Then you pick items from the customizable product and operators or even other constraint templates to replace the variables in the constraint. Both arithmetic and logical operators are provided by the Constraints view.

Configuration constraints you create apply only to the current product, and are stored as part of it. In contrast, constraint templates reside in the Constraints view and can be used with any product.

For information about the templates that are available with the product, see Configuration Constraint Template Reference.

About the Siebel Constraint Engine

The Siebel Product Configurator integration with Oracle Advanced Constraint Technology is available as a developer preview, and can be utilized to apply existing, or new, customizable product constraints.

The Siebel Constraint Engine is not available by default, therefore you must actively install Enterprise Cache and Siebel Constraint Engine using the Siebel Enterprise Server installer. If you are installing Siebel for the first time, then you can include Enterprise Cache and Siebel Constraint Engine with other Siebel Enterprise Server components, such as the Siebel Server. However, if you perform a migration installation, then you must install the other Siebel Enterprise Server components first, for example, the database, gateway, and so on, and then install Enterprise Cache and Siebel Constraint Engine in a separate location. For more information on Oracle Advanced Constraint Technology (available as a developer preview), see Siebel Installation Guide for the operating system you are using.

The following considerations apply to installing the Siebel Constraint Engine:

  • You can install Enterprise Cache and Siebel Constraint Engine separately.

  • You configure and deploy the Siebel Constraint Engine using Siebel Management Console. First, you must configure and deploy profiles for the main Siebel server modules, the Enterprise Cache server, and the Enterprise Cache client. When this is complete, you finally configure and deploy the Siebel Constraint Engine.

Constraints behave slightly differently in the Siebel Constraint Engine compared to the existing constraint technology. For more information on configuration constraints, see the chapters Configuration Links, Configuration Resources, and Configuration Constraint Template Reference. An example of different behavior is when constraints reference to grand-child relationships. When using constraints in the new Siebel Constraint Engine, any defined parent relationships must be instantiated in the product instance, if you want to fire any constraints referring to respective grand-children. All other grand-child behavior remains unchanged.

The following figure shows an example of this behavior.

Product Definitions Structure Designer

Consider the following constraint:

Attribute CrossPr_Ch_Attr2 = 10 requires selection of REL1 >> CrossPr_Ch_Simple300 >> REL1 >> CrossPr_GrCh_Simple100

Alternatively, if you are using Rule Assembly Language instead of configuration constraint templates, consider the following syntax:

req(==(@.[CrossPr_Ch_Attr2],AttrData("10",@.[CrossPr_Ch_Attr2])),@.[88-5B46Y]([88-5B3J5]).[88-5B4CZ]([88-5B3IC]))

Currently with the existing constraint technology, the following events occur:

If CrossPr_Ch_Attr2 =10, then both the child product CrossPr_Ch_Simple300 (Qty 1), and the grand-child product CrossPr_GrCh_Simple100 (Qty 1) are added.

However in the new Siebel Constraint Engine, constraints behave as follows:

  • If only CrossPr_Ch_Attr2 = 10, then the grand-child product CrossPr_GrCh_Simple100 is not added.

  • If both CrossPr_Ch_Attr2 = 10 and REL1 >> CrossPr_Ch_Simple300 exist, then the grand-child product CrossPr_Ch_Simple300 >> REL1 >> CrossPr_GrCh_Simple100 (Qty 1) is added.

For more information on Siebel Constraint Engine behavior, see About Configuration Resources and Data Operators in Rule Assembly Language.

Process of Setting Up Siebel Constraint Engine

To set up Siebel Constraint Engine, perform the following tasks:

  1. Setting Up the Siebel Constraint Engine System Preference

  2. Setting Up the EnableOraCfgEngine UI Property

    Setting Up the Siebel Constraint Engine System Preference

    Perform the steps in the following procedure to update up the Siebel Constraint Engine system preferences.

    To set up the Siebel Constraint Engine system preference

    1. Log in to a Siebel application on the Siebel Server.

    2. Navigate to Administration - Application, and then the System Preferences view.

    3. In the System Preferences list, either query for the following system preference, or create the system preference if it does not already exist, then enter the value shown in the following table:

    System Preference System Preference Value Description

    EnableOraCfgEngine

    Y or N

    Enables the Siebel Constraint Engine at the enterprise level. This value is overridden by the UI property found at the Customizable Product. The default value for this system preference is N.

    Note: The EnableOraCfgEngine UI property overrides the EnableOraCfgEngine system preference. When the root customizable product and the child customizable product have different EnableOraCfgEngine values, then the model uses the value assigned to the root customizable product. For example, if EnableOraCfgEngine is equal to N for the root customizable product, and the child customizable product value is equal to Y, then the value N is used when loading the root customizable product including child customizable product. However, when customizing just the child customizable product, it uses the new Siebel Constraint Engine engine.

      Setting Up the EnableOraCfgEngine UI Property

      Create the UI property under the root customizable product shown in the following table:

      UI Property UI Property Values Description

      EnableOraCfgEngine

      Y or N

      Allows the controlled deployment of the ACT library by activating the ACT library for a customizable product.

      Note: This UI property overrides the EnableOraCfgEngine system preference. When the root customizable product and the child customizable product have different EnableOraCfgEngine values, then the model uses the value assigned to the root customizable product. For example, if EnableOraCfgEngine is equal to N for the root customizable product, and the child customizable product value is equal to Y, then the value N is used when loading the root customizable product including child customizable product. However, when customizing just the child customizable product, it uses the new Siebel Constraint Engine engine.

      For more information on defining a UI property, see Defining a UI Property.

        About Start and End Dates for Configuration Constraints

        For each constraint you create, you can set effective dates that control when the constraint is active. You can set both a start date and an end date. On the start date the constraint is used to compute all solutions presented to the user when they configure a product. On the end date, the constraint is no longer used to when computing solutions.

        Specifying start and end dates in combination has the following effects:

        • Both a start and end date specified. The constraint becomes active on the start date and becomes inactive on the end date.

        • Start date specified. The constraint becomes active on the start date and remains active thereafter.

        • End date specified. The constraint is active when the version is released for use, and becomes inactive on the end date.

        The start date is determined using the Siebel server's system date. The start and end dates work as follows in relation to the date the product is released (release date):

        • If the release date is earlier than the start date, the constraint becomes active on the start date.

        • If the release date is later than the start date, the constraint is active when the product is released.

        • If the release date is earlier than the end date, the constraint becomes inactive on the end date.

        • If the release date is later than the end date, the constraint is inactive when the product is released, and the constraint remains inactive.

        When you are validating a product, you can temporarily activate or deactivate constraints in the current work space by clicking the constraint's Active box in the Constraints List. This lets you simulate how the constraint will behave on the start and end date.

        For example, you can test a constraint with a start date in Validate mode using the following process:

        1. Deselect the constraint's Active checkbox to deactivate the constraint. Then go to Validate mode and test the product. This simulates what users will see before the start date when the constraint is not being used to compute solutions.

        2. Select the constraint's Active box to activate the constraint. Then go to Validate mode and test the product. This simulates what users will see after the start date when the constraint is being used compute solutions.

        You can specify start and end dates for constraints when you create them or by editing constraints after they have been created.

        About the Configuration Constraints View

        The Constraints view has three parts:

        For more information on creating configuration constraints, see Creating Configuration Constraints

          Constraint Listing

          When you go to the Constraints view, all the constraints defined for a product are listed. You can edit, copy, and delete the constraints in the listing.

            Constraint Template Listing

            When you click New Constraint or New Template in the constraint listing, the constraint template listing appears. This listing contains the pre-defined constraint templates in the Constraints view. It also lists any templates you have created.

            The constraint templates provide the basic constraint types you need for creating configuration constraints. For example, there are constraint templates for exclude constraints, others for require constraints, and so on.

            Each constraint template contains variables that you replace to create a configuration constraint. You can replace the variables with items from the customizable product, links, resources, expressions, or other templates.

              Constraint Statement

              When you select a constraint in the constraint template listing and click Continue, the Constraint Statement form displays. It contains the constraint template you selected. You build a configuration constraint by replacing the variables in the statement with items from the customizable product, with resources or links, with operators, or with other constraints. To move to another variable in the constraint statement, click it. The currently selected variable in the constraint statement displays with square brackets around it. Variable that are not current but can be selected, display an underline when the cursor is placed on them. When you select an item for a variable, it displays in red.

              The items you can replace a variable with are grouped in the "Insert a" tab, located after the Constraint Statement. When you move between variables in the constraint, the groupings change to reflect your allowable choices.

              In some templates when you replace a variable with a value, typically an expression, the Compound button becomes active. The Compound button lets you nest expressions within expressions. For example, you could use the Compound button to add two variables together where the second variable is itself an expression that adds two variables.

                Overview of Using the Constraints view

                When you create constraints, you use the constraints view in the following way:

                1. In the constraint template listing, select the desired constraint template.

                2. Select the first variable in the constraint.

                3. Click the desired item grouping.

                4. Pick the product, operator, or constraint template you want to insert.

                5. Move to the next variable and insert the desired item.

                6. When you are finished, save the constraint.

                  Guidelines for Creating Configuration Constraints

                  Consider the following guidelines when creating constraints:

                  • If constraints are needed, create at least one constraint early in the process of building a product. The presence of a configuration constraint, even if it is inactive, causes Siebel Product Configurator to check the product for errors more rigorously when you go to validate mode.

                  • Avoid writing constraints that use large quantities until you have verified the logic of the constraint. For example, write a constraint that refers 10 items and check it before changing the constraint to refer to 10,000 items. This prevents needless solution searches if the basic logic of the constraint is incorrect.

                  • Test each constraint after you create it. Consider inactivating constraints that are unrelated to the new constraint to facilitate troubleshooting. Test constraints by starting a configuration session and selecting the affected items. To start a configuration session, from the Constraints List menu, select Validate.

                  • If you are using asset-based ordering, you can minimize order problems if you avoid creating require rules that add items that are not tracked as assets to a customizable product. For example, you write a require rule that adds a one-time charge for Installation to a customizable product. You do not set the Track as Asset flag for Installation in its product record. This means Installation does not display as a customer asset. Then the customer requests an addition to the service. The call center agent selects the service, clicks Modify, and starts a configuration session. The Siebel Product Configurator engine adds Installation, because it is required by configuration rules. Installation is transferred to the quote even though it is not required by the service modification.

                  Creating Configuration Constraints

                  You can create configuration constraints for customizable products or for product classes.

                  If you create the constraints for product classes, they are inherited by products with attributes that are in this class and by products with components that are in this class.

                  Caution: The maximum size for a configuration constraint is 900 characters. Do not enter a constraint longer than this.

                  To navigate to the constraints view for products with components

                  1. Navigate to the Administration - Products screen, then the Product Definitions view.

                  2. In the Product list, select and lock the desired product.

                  3. In the Versions list, click the desired version.

                  4. Navigate to the Constraints view.

                    The Constraints List appears with all the constraints that have been created for this product.

                  To navigate to the constraints view for product classes

                  1. Navigate to the Administration - Products screen, then the Products Classes view.

                  2. In the Product Classes list, select and lock the desired product class.

                  3. In the Versions list, click the desired version.

                  4. Navigate to the Constraints view.

                    The Constraints List appears with all the constraints that have been created for this product.

                  To create a configuration constraint

                  1. Navigate to the Constraints view, as described previously.

                  2. In the Constraints List, click New Constraint.

                    The Pick a Constraint list appears and lists the constraint templates available for creating constraints. The Constraint Statement form displays the syntax of the currently-selected constraint.

                  3. In the Pick a Constraint list, select the constraint template that you want, and click Continue.

                    Note: For descriptions of the constraint templates, see Configuration Constraint Template Reference.

                    The Constraint Statement form and "Insert a" list appear. The Constraint Statement tab contains the constraint template you selected. The "Insert a" tab lists the item groups available for the currently-selected variable in the constraint.

                    To return to the display of all the Web templates, click Back. To exit and return to the Constraints List, click Cancel.

                  4. In the Constraint Statement form, click the first variable you want to work on.

                    Variables are enclosed in square brackets. When you click a variable, it turns red to indicate it is selected.

                  5. In the "Insert a" list, select the item grouping containing the item you want to insert. In the dialog box, choose the desired item.

                    When selecting products, click the product select button. If you click the product name, the dialog box displays product information.

                    The variable in the constraint template is replaced by the item.

                  6. Repeat these steps for each variable until you have built the desired constraint.

                  7. Click Save Constraint to save the constraint.

                    The Save button becomes active when you have selected values for all the variables in the constraint. Clicking the Save button causes the Save Constraint form to appear.

                  8. Fill out the fields in the Save Constraint form, and then click Save. Some fields are described in the following table.

                    Field Comments

                    Name

                    Enter a name for the constraint.

                    You must use names that help you to locate the constraint using the Find button. For example, consider including the constraint type (excludes, requires and so on) in the constraint name, so you can search the Name field to find groups of constraints having the same constraint type, for example, all the exclude constraints.

                    Explanation

                    Enter an explanation of how the constraint works.

                    You must enter explanations that help you to locate the constraint using the Find button. For example, consider including information that uniquely identifies the constraint, such as item names, so you can search the Name and Explanation fields to find a specific constraint.

                    Rule Statement

                    Displays the constraint statement that you built. To edit the constraint, click Edit.

                    Start Date

                    Optionally, specify a start date on which the constraint becomes effective.

                    End Date

                    Optionally, specify an end date after which a constraint becomes inactive. For more information about Start Date and End Date, see About Start and End Dates for Configuration Constraints.

                    Active

                    Select this checkbox to activate the constraint, so it is used to compute solutions.

                    Use this feature in the current work space to simulate the behavior of constraints that will have a start date, end date, or both when you release the product. You can also use this feature to deactivate a constraint but retain it in a released version of the product. For more information, see Activating and Deactivating Configuration Constraints.

                    The constraint displays in the Constraints List.

                  9. From the Constraints List menu, select Validate.

                    This starts a configuration session. Verify that the constraint works correctly.

                  Tuning Configuration Constraints

                  The Siebel Product Configurator engine evaluates solutions by traversing the attributes and the relationships of the root customizable product, for example, the product the user adds to the Order or Quote. The engine implements a recursive algorithm to derive at a solution and uses the algorithm to resolve the deepest node of each branch of the hierarchy. Once the deepest node of a given branch has been resolved, the algorithm returns to the previous level of the hierarchy and resolves the next product to the deepest node. This calculation continues until all branches, and all products of the branch, have been resolved.

                  During this process of branch resolution, the attributes are also resolved. This default evaluation order might result in unnecessary calculation and result in performance issues for some customers. Hence Siebel Product Configurator allows the administrator to adjust the evaluation order for a customizable product by specifying the UI property, GoalMode, under the class or product.

                  When you define the GoalMode UI property for a class, the entire set of attributes and relationships that define the class is impacted. Classes might be defined with just attribute definitions, or they might be defined with product, attribute, and rules definitions, known as Product Classes. For more information about Product Classes, see About Product Classes.

                  Every member of the class, including sub classes, inherits the GoalMode UI property. If a member of a sub class also has a GoalMode UI property defined, this overrides the parent class property.

                  If you define the GoalMode UI property for a customizable product, only the first level attributes and relationships that define the Product Class is impacted. In this instance, the GoalMode UI property does not propagate down through the hierarchy of a customizable product. For example, when a relationship contains another customizable product, the Siebel Product Configurator logic looks for a new GoalMode UI property at the level provided by either the product itself, or at the level provided by the class of the product. If a GoalMode UI property is not defined, Siebel Product Configurator uses the default value of 0.

                  The supported values for the GoalMode UI property are described in the following table:

                  Value Description

                  0

                  Evaluate relationships first, then attributes (default current behavior).

                  1

                  Evaluate attributes first, then relationships (reverse of default).

                  2

                  Mixed mode, evaluates relationships and attributes together as a single set.

                    Sequence Number List Column

                    The Sequence Number List Column is used to decide the order of evaluation for both attributes and relationships. You can access the Sequence Number List Column for attributes through the applet menu option, Columns Displayed. The Sequence Number List Column is available for relationships in the standard Siebel application.

                    The sequence number for relationships determines the UI display order when no UI option is defined. In case of conflicting requirements between a desired evaluation order and the UI presentation order, always favor the evaluation order requirements. It is always possible to change the UI presentation order by using UI Option, UI Group, and then UI Item structure.

                      GoalMode Processing Order Example

                      The following hierarchy exists for CP 0 (CP = Customizable Product)

                      CP 0 GoalMode=1

                      Relationship01 Sequence Number: 1

                      CP 1

                      Relationship02 Sequence Number: 3

                      CP 2

                      Attr01 Sequence Number: 2

                      Attr02 Sequence Number: 4

                      CP 1 GoalMode=0 (or not set)

                      Relationship11 Sequence Number: 5

                      Product A

                      Relationship12 Sequence Number: 1

                      Product B

                      Attr11 Sequence Number: 15

                      Attr12 Sequence Number: 4

                      CP 2 GoalMode=2

                      Relationship21 Sequence Number: 5

                      Product C

                      Relationship22 Sequence Number: 1

                      Product D

                      Attr21 Sequence Number: 15

                      Attr22 Sequence Number: 4

                      Based on the GoalMode UI properties in the preceding hierarchy, Siebel Product Configurator resolves the solution in the following order:

                      CP0.Attr01

                      CP0.Attr02

                      CP0.Relationship01

                      CP 1.Relationship12

                      Product B

                      CP 1.Relationship11

                      Product A

                      CP1.Attr12

                      CP1.Attr11

                      CP 0.Relationship02

                      CP 2.Relationship22

                      Product D

                      CP 2.Attr22

                      CP 2.Port21

                      Product C

                      CP 2.Attr21

                        Using the GoalMode UI Property

                        The GoalMode UI property is especially useful for cascading formula calculations. For example, consider a formula with a constraint between 3 non-negative integer attributes: X, Y, and Z

                        Z >= (1000*X*(4*Y - 1))/(4*Y); for any X and any positive Y there is a set of valid values for Z,

                        Assume a user requests that X = 10.

                        If Siebel Product Configurator follows the order by which the variables are defined, Z is evaluated first. This might result in a long chain of trials and failures for the first couple of hundred values, and the calculation might exceed the allowed number of iterations.

                        If you explicitly specify that Siebel Product Configurator evaluates Y before evaluating Z, then the first choice value for Y results in finding a valid solution to the formula through propagation.

                        Another example might be a formula with two attributes X and Y with incompatible default values x and y, respectively. Consider the following statement that:

                        X = x excludes Y = y and conversely.

                        The default selections can not be satisfied for both attributes simultaneously and the result depends on the order. The GoalMode UI property enables you to specify explicitly the order in which the constrained variables are evaluated.

                          Setting Constraints for Numeric Attributes

                          In previous releases, you had to define a constraint if you wanted to constrain the range for a numeric (number and integer) attribute. There is now an easy, centralized way of restricting the upper and lower bounds for numeric attributes. You can specify the Minimum and Maximum range for an attribute through the column display in the Administration - Product screen, then the Attribute Definitions view or Product Classes view.

                          Minimum and Maximum values defined at the Attribute Definitions level restrict the domain of all Object (Classes and Products) Attributes, based on this definition.

                          Minimum and Maximum values defined at the Class Attribute level restrict the domain of all inherited Attribute of Objects derived from the Class.

                          Minimum and Maximum values can be overwritten for each level throughout the inheritance tree, with a restriction that derived objects can only reduce to the interval inherited from its parent, that is Minimum value is greater than or equal to the parent Minimum value and the Maximum value is less than or equal to the parent Maximum value.

                          Activating and Deactivating Configuration Constraints

                          When you create a constraint, it may be active or inactive by default:

                          • If you save the constraint using quick save the Active flag is checked automatically by default.

                          • If you save the constraint using the Save Constraint menu option, the user must select the Active check box, or else the rule is inactive.

                          An active constraint is used to compute all solutions (if the date is within the start and end date of the constraint).

                          When you deactivate a constraint, it is not used to compute solutions. One reason for deactivating a constraint is to help you test constraints in Validate mode. You can deactivate a group of constraints and then activate them one at a time to see how each affects the product's behavior when it is being configured.

                          Another reason to deactivate constraints, is when you want to release a version of a product that does not require a constraint to be active. You can deactivate the constraint and then release the product. The constraint is inactive in the released version and is not used to compute solutions.

                          To deactivate a constraint

                          1. Navigate to the Administration - Product screen.

                          2. Select and lock the desired customizable product or product class.

                          3. Navigate to the Constraints view.

                          4. In the Constraints list, select the desired constraint and deselect the Active checkbox.

                          5. From the Constraints List menu, select Validate.

                            This starts a configuration session. Verify that the customizable product works correctly.

                          To activate an inactive constraint

                          1. In the Constraints list, select the desired constraint and select the Active checkbox.

                          2. From the Constraints List menu, select Validate.

                            This starts a configuration session. Verify that the customizable product works correctly.

                          About Managing Configuration Constraints

                            Editing Configuration Constraints

                            In the Constraints List, you cannot edit the definition of the constraint in the Constraint column. To edit the definition, you must display the constraint in the Constraint Statement form, make your changes, and save the constraint. When you save the constraint, you can overwrite the constraint with the changes or save the changes as a new constraint.

                            The following procedure explains how to edit a constraint definition and overwrite the constraint with the changes.

                            To edit a constraint

                            1. Navigate to the Administration - Product screen.

                            2. Select and lock the desired customizable product or product class.

                            3. Navigate to the Constraints view.

                              In the Constraints list, select the desired constraint.

                            4. From the Constraints list menu, select Edit Constraint.

                              The Constraint Statement and "Insert a" tabs appear.

                            5. Edit and save the constraint.

                            6. From the Constraints List menu, select Validate.

                              This starts a configuration session. Verify that the edited constraint works correctly.

                              Copying Configuration Constraints

                              When you copy a constraint, the application creates an exact duplicate of the constraint and displays it in the Constraints view. You can then edit the constraint definition as desired.

                              If you copy a constraint and make no changes to the copy, two exactly equivalent constraints are used to compute each solution. This does not cause a problem, and solutions are computed as if there was only one constraint.

                              Use the copy feature to create groups of constraints that are similar. Start by creating the basic constraint. Then copy it once for each constraint in the group. Finally, edit the copies to create the constraints in the group.

                              To copy a constraint

                              1. Navigate to the Administration - Product screen.

                              2. Select and lock the desired customizable product or product class.

                              3. Navigate to the Constraints view.

                              4. In the Constraints List, select the constraint you want to copy.

                              5. From the Constraints List menu, select Copy Record.

                                A copy of the constraint appears in the Constraints List. Its name begins with "Copy of."

                              6. In the Name field, edit the constraint name as desired.

                              7. Edit the constraint statement, explanation, and start/end dates as desired.

                              8. From the Constraints List menu, select Validate.

                                This starts a configuration session. Verify that the new constraint works correctly.

                                Deleting Configuration Constraints

                                Deleting a constraint removes it from the customizable product. The template on which the constraint was based is not removed and remains available.

                                To delete a constraint

                                1. Navigate to the Administration - Product screen.

                                2. Select and lock the desired customizable product or product class.

                                3. Navigate to the Constraints view.

                                4. In the Constraints List, select the constraint you want to delete.

                                5. From the Constraints List menu, select Delete Record, and click OK when asked if you want to delete the record.

                                6. From the Constraints List menu, select Validate.

                                  This starts a configuration session. Verify that the customizable product constraints function correctly.

                                  Creating Configuration Constraint Templates

                                  When you create and save a constraint, the constraint becomes part of the customizable product or product class. The constraint is not visible in other customizable products or product classes.

                                  When you create and save a constraint as a template, it is added to the list of templates. The list of templates is visible in all customizable products or product classes. Create templates for those constraints that you will use with several customizable products. There is a single template list for customizable products and product classes, so any templates you create are available for both.

                                  Templates that refer to items in one customizable product or product class cannot be used to refer to items in another customizable product or product class. Items include products, relationships, links, links and resources. For example, you write the following constraint for customizable product CP1 and save the constraint as a template called A Requires B:

                                  Product A requires Product B

                                  You also have customizable product CP2, that includes Product A and Product B. You want to write the same constraint for CP2.

                                  If you use the template A Requires B in CP2, you will receive a validation error when you validate CP2. This is because each item in a customizable product receives a unique item ID. This item ID is what the application stores as the item name when you create a constraint or a constraint template in a customizable product. This ID is not transferable to other products with components.

                                  Note: Constraint Templates cannot be edited or deleted. This is to prevent unintended problems across multiple products with components or product classes where templates have been used.

                                  To create a constraint template

                                  1. Navigate to the Administration - Product screen.

                                  2. Select and lock the desired customizable product or product class.

                                  3. Navigate to the Constraints view.

                                  4. From the Constraints List menu, choose New Template.

                                    The Pick a constraint list appears.

                                  5. Create the desired constraint that you want to use as a template.

                                  6. Click Save Template and complete the necessary fields in the Custom Template Definition form, described in the following table.

                                  Field Comments

                                  Name

                                  Enter the template name. This name displays in the Pick a constraint list.

                                  Template Identifier

                                  Displays a text string that uniquely identifies the template. It does not display to users.

                                  Description

                                  Enter a description of what the template does. The description displays in the Pick a Constraint list.

                                  Translation

                                  Displays the internal translation of the template. This field is automatically populated by the application and can be used to construct the Spec.

                                  Spec

                                  Enter the constraint syntax. The constraint syntax can be derived from the Translation field.

                                  Creating a Configuration Constraint Summary Report

                                  You can obtain a report that lists all the configuration constraints in a customizable product or product class. The report shows the following information:

                                  • Constraint name

                                  • Constraint Statement

                                  • Explanation

                                  • Start date

                                  • End date

                                  • Active

                                  • Updated date

                                  • Updated by

                                  The Constraint Summary displays in the Siebel Report Viewer. You can print the report or create an email attachment.

                                  This report must be enabled on the report server before performing the following procedure.

                                  Tip: The on-screen display of the report typically lists more products on each page than the Products list. Use the report to scan quickly through the product table.

                                  To create a constraint summary report

                                  1. Navigate to the Administration - Product screen.

                                  2. Select and lock the desired customizable product or product class.

                                    If you omit this step, the most recently released version of the customizable product is loaded in the Constraints view.

                                  3. Navigate to the Constraints view.

                                  4. In the application icon bar, click the Reports icon.

                                  5. In the Run Report applet, select Rule Summary.