Modifying the Metadata to Support Hierarchical Picklists

This task is a step in Process of Creating Hierarchical Picklists.

In this topic you modify the metadata to support a hierarchical picklist.

To modify the metadata to support a hierarchical picklist

  1. Use an XML editor open the siebel_meta_info.xml file.

  2. Locate the following object:

    TypeId="Opportunity"
    
  3. Add new fields to the Opportunity object. You add the following code immediately following the object you located in step 2:

    <field Name='JVD Hier Parent' Label='JVD Hier Parent'
    DataType='DTYPE_TEXT' HasPicklist='yes'
    PicklistIsStatic='yes'
    PicklistCollectionType='JVD_HIER'
    PicklistTypeId=List_Of_Values_Parent'
    IOElemName='JVDHierParent'/>
    <field Name='JVD Hier Child' Label='JVD Hier Child'
    DataType='DTYPE_TEXT' HasPicklist='yes'
    PicklistIsStatic='yes'
    PicklistCollectionType='JVD_HIER'
    PicklistTypeId='PickList_Hierarchical_Child'
    IOElemName='JVDHierChild'/>
    
  4. Locate the following object:

    <picklist TypeId="PickList_Hierarchical" 
    . . .
    </picklist>
    
  5. Add the child picklist. Add the following code following the object you located:

    <picklist
      TypeId='PickList_Hierarchical_Child'
      SrcObjectTypeId='PickList_Hierarchical'
      CollectionTypeFldName='Type'
      ValueFldName='Value'
      LabelFldName='Value'
      LangFldName='Language' >
      <extra_src_fldname Visible='true'>
        Parent
      </extra_src_fldname>
      <master_filter_expr>
        <![CDATA[
          NOT [Parent Id] Is Null
        ]]>
      </master_filter_expr>
    </picklist>
    

    The following filter makes sure that Siebel CRM Desktop gets only the four values that are applicable as child values:

    NOT [Parent Id] Is Null
    

    The following field sets up filtering for items that you configure later in this procedure:

    <extra_src_fldname Visible='true'>
      Parent
    </extra_src_fldname>
    
  6. Add the parent picklist. You add the following code:

    <picklist
      TypeId='List_Of_Values_Parent'
      SrcObjectTypeId='List_Of_Values'
      CollectionTypeFldName='Type'
      ValueFldName='Value'
      LabelFldName='Value'
      LangFldName='Language'>
      <master_filter_expr>
      <![CDATA[
        [Active] = 'Y' AND [Parent Id] Is Null
         ]]>
      </master_filter_expr>
    </picklist>
    

    The following filter makes sure that Siebel CRM Desktop gets the values that are allowed as parent values:

    [Active] = 'Y' AND [Parent Id] Is Null