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
Use an XML editor open the siebel_meta_info.xml file.
Locate the following object:
TypeId="Opportunity"
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'/>
Locate the following object:
<picklist TypeId="PickList_Hierarchical" . . . </picklist>
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>
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