Bookshelf Home | Contents | Index | PDF |
Siebel Product Administration Guide > Siebel Configurator Rule Assembly Language > About Operators in Rule Assembly Language > Boolean Operators in Rule Assembly LanguageWhen you specify this type of operator, the Siebel Configurator engine interprets it as true when the item is in the solution, and as false if the item is not in the solution. If you specify a resource or an arithmetic sub-expression as an operand, the Siebel Configurator engine interprets it as true if the expression is greater than zero, and false if the expression is less than or equal to zero. The requires operator (req()) is an example of this type of operator. The Siebel Configurator engine interprets the following constraint to mean item A requires item B. In other words, if A is in the solution, B must be in the solution. The Siebel Configurator engine does not interpret this constraint to mean the current quantity of item A requires the same quantity of item B. That constraint would be written as follows: The Boolean operators are shown in Table 32. Table 33 provides the truth-state definition of how the Boolean operators work. The first two columns contain the operands A and B. These could be items or arithmetic expressions, in which case A>0 means that A is in the solution. More on the Requires OperatorThe requires operator is not an incremental add. For example, you write the constraint req(A, B). If the user picks A and there are no B's in the solution, the Siebel Configurator engine will add at least one B. The next time the user picks A, the engine does not add another B. If you want to add a B each time an A is added, use the inc() operator. More on the Logical Equivalence OperatorAs a top level constraint, the logical-equivalence operator (eqv()) creates a mutually-requires relationship between its operands. The operands can be either items or sub-expressions. For example eqv([A], [B]) means than if item A is in the solution, then at least one item B must be in the solution. Also, if item B is in the solution, then at least one item A must be in the solution. Note that the relationship between [A] and [B] is noncumulative. (Use the inc() operator to create cumulative-requires relationships.) For example, the following constraint states that if the quantity of [A]>2, then [B] is required. This expression constrains the solution as follows:
More on the Excludes OperatorAs a top-level constraint, the excludes operator (excl(A, B)) creates a mutually exclusive relationship. The expression excl([A], [B]) means that if item A is in the solution, item B cannot be in the solution. It also means that if item B is in the solution, item A cannot be in the solution. The exclude constraint can also be used with sub-expressions. For example, the following constraint excludes item B when item A's quantity is greater than 2. It also prevents item A from being greater than 2 when item B is in the solution. Multiple Operands for Require and Exclude OperatorsYou can use multiple operands in requires and exclude constraints. For example, you could write the following constraint: This syntax is interpreted by the Siebel Configurator engine as if you had written two constraints: In other words, [A] excludes both [B] and [C]. Note that [A] is the first operand in both the constraints. Siebel Configurator takes the first operand and creates expressions between it and each remaining operands. This works the same way for require constraints: This syntax is interpreted by the Siebel Configurator engine as if you had written two constraints: In other words, [A] requires both [B] and [C]. There is no limitation on the number of operands you can use in this type of expression. |
Siebel Product Administration Guide | Copyright © 2018, Oracle and/or its affiliates. All rights reserved. Legal Notices. | |