Setting Up the Grandchild Display of the Open UI Siebel Configurator User Interface

The grandchild display of the Open UI Siebel Product Configurator user interface allows you to display an arbitrarily deep model and instance hierarchy on a single page, with minimum refresh.

This feature must be used carefully, because performance degrades with the depth of the hierarchy displayed.

To turn on the grandchild display

  1. Set the following UI Properties:

    • MultiChildrenPort = <the name of the port that has grand child> (at the parent CP group level)

    • Default Group = <Group Name> (At the child level)

  2. Change the template, as follows:

<!-- Template Start: eCfgControlCheckPriceMultiLevelJS -->
<od-include file="eCfgPort_HeaderJS"/>
<tr>
   <td colspan=3>
      <od-iterator id="500" CfgLoopType="DomainAndChildren" startValue="1500" 
count="Dynamic" iteratorName="101Id" 
       Usage="CheckBox"
       CfgFieldList="CfgFieldName:Name, CfgUIControl:lblName, HtmlAttrib_width:310, 
Default:Y*
                     CfgFieldName:RequireMoreChild, Default:Y*
                     CfgFieldName:List Price, CfgUIControl:lblListPrice, 
DataType:DTYPE_CURRENCY, NeedRefresh:N, HtmlAttrib_align:center, 
HtmlAttrib_width:80*
                     CfgFieldName:Current Price, CfgUIControl:lblYourPrice, 
DataType:DTYPE_CURRENCY, HtmlAttrib_align:center, HtmlAttrib_width:80*
                     CfgFieldName:Explanation, CfgUIControl:lblExplanation, 
HtmlAttrib_align:center*
                     CfgFieldName:Customize, CfgUIControl:lblCustomize, 
HtmlAttrib_align:center"
                     >
          <od-type="control" id="swe:111Id + 4000" CfgHtmlType="CfgCheckBox" 
ForceRefresh="Y"
           CfgJSShow="showCheckBox" CfgJSUpdateExclusion="updateExcludedItemForPort" 
CfgJSUpdateSelection="updatePortItemsForCheckBox"/>
      </od-iterator>
   </td>
</tr>
<!-- LM: for each selected product of the current relationship, include full UI 
starting from group level -->
<tr>
   <td width="100%" colspan="3">
         <table width="100%" cellpadding="0" cellspacing="0" border="0">
           <od-iterator id="500" CfgLoopType="Children" startValue="1500" 
count="Dynamic" iteratorName="101Id">
                  <swe:switch>
                     <swe:case condition="Default, TestFieldValue, Operator:==, 
FieldName:CanDrillDown, FieldValue:Y">
            <od-iterator id="110" CfgLoopType="CurrentGroup" startValue="8100" 
count="Dynamic" iteratorName="100Id">
               <tr>
                  <td width="10%">
                  </td>
                  <td width="80%">
                  <od-include id="swe:151Id" CfgHtmlType="CurrentGroup"/>
                  </td>
                  <td width="10%">
                  </td>
               </tr>
        </od-iterator>
                     </swe:case>
                     <swe:default>
   <od-iterator id="110" CfgLoopType="Attribute" startValue="1100" count="Dynamic" 
iteratorName="IncId" >
      <tr class="listRowOff">
         <td class="row" width="100%" class="AppletBlank">
            <od-include id="swe:151Id" CfgHtmlType="Children"/> 
         </td>
      </tr>
   </od-iterator>
   <tr><td width="100%" class="AppletBlank"></td></tr>
   <tr><td width="100%" class="AppletBlank"></td></tr>
   <od-iterator id="100" CfgLoopType="Port" startValue="2100" count="Dynamic" 
iteratorName="IncId" >
       <tr class="listRowOff">
          <td width="100%" class="row" class="AppletBlank" >
             <od-include id="swe:151Id" CfgHtmlType="Children"/> 
          </td>
       </tr>
   </od-iterator>
   <tr><td width="100%" class="AppletBlank"></td></tr>
   <tr><td width="100%" class="AppletBlank"></td></tr>
                     </swe:default>
                  </swe:switch>
           </od-iterator>
         </table>
   </td>
</tr>
<od-include file="eCfgPort_FooterJS"/>
<!-- Template End: eCfgControlCheckPriceMultiLevelJS -->