Siebel Product Administration Guide > Siebel Configurator UI Properties > Creating Dynamic Siebel Configurator User Interface Controls >

About Using CfgEval()


Use CfgEval() to access instance information inside Siebel Configurator, for example, to whether a user has set an attribute or selected a component product.

CfgEval() returns a Boolean value and is currently supported within:

  • The PickSpec UI property
  • The Dynamic Show and Hide and Dynamic Read-Only.

Syntax Enhancements for CfgEval()

CfgEval() uses the standard syntax for product paths in Siebel Configurator. For more information, see Siebel Configurator Scripts.

CfgEval() also uses the following enhancements to the syntax for product paths:

  • Use .xa[Attribute Name] to specify the attribute name
  • Use .xf[Value] to return the attribute value
  • Use .xf[Quantity] to return the product quantity

Here are examples of these enhancements:

  • To return an attribute value:
    CfgEval($.[Root Product]#1.[Relationship]#[Component Product].xa[Attribute].xf[Value])
  • To return the quantity of a component product:
    CfgEval($.[Root Product]#1.[Relationship]#[Component Product].xf[Quantity])

Using CfgEval() with Dynamic Show and Hide, Dynamic Read-Only, and Dynamic Display of Images

To use dynamic show and hide, dynamic read-only, or dynamic display of images, you must create a UI property on the root product whose value is an expression that uses the CfgEval() function and that evaluates to Y or N. For more information, see Dynamically Showing and Hiding Siebel Configurator Controls.

You can define the expression using the CfgEval() function in either of two ways:

  • Session Values. Use the CfgEval() function to create simple expressions that reference session values such as the product quantity and attributes that the user selects. Here are some examples of how to use this function:
    • Check whether the user has selected an attribute on the Root Product: CfgEval($.[RootProduct]#1.xa[AttributeName].xf[Value])='ABC'
    • Check whether the user has selected an attribute on the Child Product: CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xa[AttributeName].xf[Value])='ABC')
    • Check the quantity of a child product: CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xf[Quantity]) = '2'
    • To return an attribute value of a child product:
      CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xa[AttributeName].xf[Value])
    • To return the quantity of a child product
      CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xf[Quantity])

For information about the syntax used in these functions, see About Product Path in Siebel Configurator Scripts.

  • Procedural Conditional Variables. Use the CfgEval() function to reference procedural conditional variables to create more complex expressions, which are useful when you want to dynamically show or hide controls based on linked items, resources or compound expressions. For more information about procedural conditional variables, see Procedural Condition Templates.

    Here is an example of the format needed to use the CfgEval() function to reference a procedural condition: CfgEval(Procedural Condition Constraint Name).

    Procedural conditional variables do not work with the Quick Edit or Multi-Select UI, because the constraint engine is disabled.

If the CfgEval() references the quantity of a child product and if there is more than one instance of this child product in the product, then CfgEval() computes the sum of the quantity in all the instances of the child product.

User actions that change the value of the CfgEval() expressions cause a page refresh, if controls must be hidden, shown, or inactivated.

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