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 Product 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 Product 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.