Siebel Product Administration Guide > Siebel Configurator Rule Assembly Language >

Creating Constraints Using the Advanced Constraint Template

The Advanced Constraint template is similar to the Assisted Advanced Constraint Template. You can create constraints using Rule Assembly Language with either template. The Advanced Constraint template does not provide a dialog box for picking products, resources, or links. It also does not provide a list of operators.

The Advanced Constraint Template is intended primarily for upgrade users who want to edit the rules in models created in release 6.x.

You must manually enter the path to items when using this template. Table 27 provides examples of paths.

When you create a constraint and save it using this template, the Constraints view displays the constraint syntax in the Constraint field. The Constraints view capitalizes the first letter of operator names in the constraint for display purposes only. Operator names are case-sensitive, and the Constraints view stores them in the correct, format.

Table 27. Examples of Paths

@.[Relationship A]([Product SubClass])

All the products in SubClass in Relationship A.

@.[Relationship A]([Product 1]).[Color]

The color attribute of all the instances of Product 1 in Relationship A.

@.[Relationship A].[Color]

The Color attribute of all the products in Relationship 1.

$.[Resource 1]

Resource 1.

$.[Link 1]

Link 1.

Observe the following guidelines when writing paths:

  • The @ sign specifies the instance of the product or group of products on which the constraint is defined. Use the @ sign at the beginning of paths that refer to items inside the structure of a customizable product.
  • The $ refers to a special object called the basket that is associated with each customizable product. This object maintains a non-hierarchical, flat view of the whole customizable product. Use the $ at the beginning of a path to specify links and resources. Since links and resources are defined for the whole customizable product, they are stored in the basket.

    Upgrade Users. Users upgrading from release 6.x will have rules containing paths that include syntax such as $.[product]. These paths should function normally. However, you should avoid using this syntax to create new rules. This syntax can cause solutions that contain unintended instances of products.

  • Use periods (.) to specify the next property in the path. A property can be a relationship name or attribute name. Do not put spaces before or after the period.
  • Use parentheses immediately after a relationship name to specify a subset of the items in a relationship. Parentheses act as a filter. The most common use for parentheses is to specify a subclass within the relationship. Do not put a period before the parentheses. For example @.[P]([X]).[Color] refers to the Color attribute of all the products in subclass X within relationship P.
  • Enter names exactly as they are displayed in the lists where they were defined. Do not use display names. You can use subclass names to filter products within a relationship even though the subclass names do not display in the Structure view.
  • The path syntax always refers to the actual set of items specified in the path, however many instances are present. For example, @.[X]. [Color] refers to the color attribute of all the instances of products actually present in relationship X in a given configuration. A path only refers to actual instances, not the possible instances as defined by cardinality settings.
  • If you create a constraint containing a path to location that contains no items, the constraint is ignored until items are present.
  • All paths you specify in rules must be unique and unambiguous. For example, if you have multiple relationships with the same name, paths to them may be ambiguous. If this occurs, use the Assisted Advanced Constraint template to write rules. This template uses underlying, unique identifiers to identify items.
  • The maximum length of a constraint is 900 characters. The UI allows rules that are longer, but they cannot be stored in the database. Using Oracle's Siebel Tools, you can revise the UI to enforce the 900 character limit. See Enforcing the Field Length for Entering Advanced Rules.

To create a constraint using the Advanced 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 for the Work Space version.
  4. Click New Constraint.

    The Pick a Constraint list appears.

  5. In the Pick a Constraint list, select the Advanced Rule template, and click Continue.

    The Rule Statement and "Insert a" tabs appear.

  6. Select operators and arguments from the displayed lists to build a constraint.

    The operators list contains all the operators in the Rule Assembly Language. The arguments list changes depending on the operator you select and contains all the items in the customizable product. Use the Compound Field button to create sub-expressions.

  7. Click Save Constraint to save the constraint.

    The Save Rule form appears.

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


    Enter a name for the constraint.

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


    Enter an explanation of how the constraint works.

    You should 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 rule statement that you built.

    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.


    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.

  9. From the Constraints List menu, select Validate.

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

Siebel Product Administration Guide Copyright © 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices.