Oracle CRM On Demand Desktop Administration Guide > Code Listing for Updates to the Customization Package from Version 2.0 >

XML Code Addition for the od_meta_info.xml File


Insert the following XML code inside the <root> element in the od_meta_info.xml file, as described in Step k:

<object TypeId='BookRaw' Label='BookRaw' LabelPlural='Books' ViewMode='Sales Rep' IntObjName='Book' XmlElemName='Book' XmlCollectionElemName='ListOfBook' DeleteIsProhibited="yes">
   <direct_ws_params DataNS="urn:/crmondemand/xml/Book/Query" InputElemname="BookQueryPage_Input" InputNS="urn:crmondemand/ws/ecbs/book/" OutputElemname="BookQueryPage_Output" OutputNS="urn:crmondemand/ws/ecbs/book/" SOAPAction="document/urn:crmondemand/ws/ecbs/book/:BookQueryPage" WrapQBEVals="false" PagingSupported="true" />
   <field Name="BookName" Label="BookName" DataType="DTYPE_TEXT" CRMName="Name" />
   <field Name="BookType" Label="BookType" DataType="DTYPE_TEXT" CRMName="Book Type" />
   <field Name="CanContainDataFlag" Label="CanContainDataFlag" DataType="DTYPE_BOOL" CRMName="Can Contain Data Flag" />
   <field Name="Description" Label="Description" DataType="DTYPE_TEXT" />
   <field Name="Id" Label="Id" DataType="DTYPE_TEXT" IsPrimaryKey="yes" IsFilterable='no' IsHidden="yes" />
   <field Name="ModId" Label="ModId" DataType="DTYPE_INTEGER" IsTimestamp="yes" IsFilterable='no' IsHidden="yes" />
   <field Name="ParentBookId" Label="ParentBookId" DataType="DTYPE_TEXT" IsFilterable='no' />
   <field Name="ParentBookName" Label="ParentBookName" DataType="DTYPE_TEXT" CRMName="Parent Book Name" />
</object>

<!--
This type draws its data from BookPL picklist, which in turn is based on Book type.
It was introduced because currently platform caches picklists, so we will not see any picklists updates while OL instance lives.

Book type could be used directly instead, but that would lead to duplicated Book downloads (picklist is always loaded and then we would have to execute query_changes/query_objects/... calls for that same type).
Existence if this type allows to just take existing data from the connector picklists cache.
-->

<object TypeId='Book' Label='Book' LabelPlural='BookPLBased' >
   <svc_params Type="PicklistBased" Path="[Book]@[::Defaults]" />
   <field Name="Id" Label="Id" DataType="DTYPE_ID" IsCalculated="true" Formula=":[:(Value):]" IsPrimaryKey="yes" IsFilterable='no' IsHidden="yes"/>
   <field Name="BookId" Label="BookId" DataType="DTYPE_TEXT" IsCalculated="true" Formula=":[:(Value):]" IsFilterable='no'/>
   <field Name="BookName" Label="BookName" DataType="DTYPE_TEXT" IsCalculated="true" Formula=":[:(Label):]" IsFilterable='no'/>
   <field Name="Value" Label="Value" DataType="DTYPE_TEXT" />
   <field Name="Label" Label="Label" DataType="DTYPE_TEXT" />
   <field Name="ParentBookName" Label="ParentBookName" DataType="DTYPE_TEXT" />
   <field Name="ParentBookId" Label="ParentBookId" DataType="DTYPE_TEXT" />
   <field Name="BookType" Label="BookType" DataType="DTYPE_TEXT" />
   <field Name="CanContainDataFlag" Label="CanContainDataFlag" DataType="DTYPE_BOOL" />
   <field Name="OrderNumber" Label="OrderNumber" DataType="DTYPE_TEXT" />
</object>

<object TypeId='BookDefaults' Label='BookDefaults' LabelPlural='BookDefaults' >
   <svc_params Type="PicklistBased" Path="[TypeDefaultBook]@[::Defaults]" />
   <field Name="Id" Label="Id" DataType="DTYPE_ID" IsCalculated="true" Formula=":[:(Value):]" IsPrimaryKey="yes" IsFilterable='no' IsHidden="yes"/>
   <field Name="Value" Label="Value" DataType="DTYPE_TEXT" />
   <field Name="TypeName" Label="TypeName" DataType="DTYPE_ID" IsCalculated="true" Formula=":[:(Value):]" IsFilterable='no'/>
   <field Name="Label" Label="Label" DataType="DTYPE_TEXT" />
   <field Name="BookId" Label="BookId" DataType="DTYPE_TEXT" />
   <field Name="IncludeSubBooks" Label="IncludeSubBooks" DataType="DTYPE_BOOL" />
   <field Name="OrderNumber" Label="OrderNumber" DataType="DTYPE_TEXT" />
</object>

<object TypeId="Book.Type.Association" Label="Book.Type.Association" LabelPlural="Book.Type.Associations" >
   <svc_params Type="SettingsBased" Path="RemoteConnectorStorage/:[:(storage_id):]/Types" />
   <field Name="BookId" Label="BookId" DataType="DTYPE_TEXT" />
   <field Name="TypeName" Label="TypeName" DataType="DTYPE_TEXT" />
   <field Name="IncludeSubbooks" Label="IncludeSubBooks" DataType="DTYPE_BOOL" />
</object>

<object TypeId='RequiredFields' Label='RequiredFields' LabelPlural='RequiredFields'>
   <svc_params Type="PicklistBased" Path="[RequiredFields]@[::Defaults]" />
   <field Name="Id" Label="Id" DataType="DTYPE_ID" IsCalculated="true" Formula=":[:(Value):]@:[:(TypeName):]" IsPrimaryKey="yes" IsFilterable='no' IsHidden="yes"/>
   <field Name="FieldName" Label="FieldName" DataType="DTYPE_TEXT" IsCalculated="true" Formula=":[:(Value):]" IsFilterable='no'/>
   <field Name="Value" Label="Value" DataType="DTYPE_TEXT" />
   <field Name="Label" Label="Label" DataType="DTYPE_TEXT" />
   <field Name="TypeName" Label="TypeName" DataType="DTYPE_TEXT" />
   <field Name="Required" Label="Required" DataType="DTYPE_BOOL" />
   <field Name="OrderNumber" Label="OrderNumber" DataType="DTYPE_TEXT" />
</object>

<object TypeId='CustomRecordType' Label='CustomRecordType' LabelPlural='CustomRecordTypes' XmlElemName='CustomRecordType' DeleteIsProhibited="yes" >
   <direct_ws_params DataNS="urn:/crmondemand/xml/customrecordtype/query" InputElemname="CustomRecordTypeRead_Input" InputNS="urn:crmondemand/ws/odesabs/customrecordtype/" OutputElemname="CustomRecordTypeRead_Output" OutputNS="urn:crmondemand/ws/odesabs/customrecordtype/" SOAPAction="document/urn:crmondemand/ws/odesabs/CustomRecordType/:CustomRecordTypeRead" WrapQBEVals="false" SuppressListOfElem="request" PagingSupported="false" URL="/Services/cte/CustomRecordTypeService" />
   <field Name="AccessObjName" Label="AccessObjName" DataType="DTYPE_TEXT" />
   <field Name="Name" Label="Name" DataType="DTYPE_TEXT" IsPrimaryKey = "yes" />
   <field Name="IncludeAll" Label="IncludeAll" DataType="DTYPE_BOOL" FillOnQueryWith="true" />
</object>

<object TypeId='FieldSet' Label='FieldSet' LabelPlural='FieldSets' ViewMode='Sales Rep' XmlElemName='FieldSet' DeleteIsProhibited="yes" >
   <direct_ws_params DataNS="urn:/crmondemand/xml/fieldmanagement/query" InputElemname="FieldManagementRead_Input" InputNS="urn:crmondemand/ws/odesabs/fieldmanagement/" OutputElemname="FieldManagementRead_Output" OutputNS="urn:crmondemand/ws/odesabs/fieldmanagement/" SOAPAction="document/urn:crmondemand/ws/odesabs/FieldManagement/:FieldManagementRead" WrapQBEVals="false" SuppressListOfElem="request" PagingSupported="false" URL="/Services/cte/FieldManagementService" />
   <field Name="ObjectName" Label="ObjectName" DataType="DTYPE_TEXT" IsPrimaryKey = "yes" />
   <field Name="IncludeAll" Label="IncludeAll" DataType="DTYPE_BOOL" />
</object>

<object TypeId='FieldSet.Fields' Label='FieldSet.Fields' LabelPlural='FieldSet.Fields' ViewMode='Sales Rep' XmlElemName='Field' XmlCollectionElemName='ListOfFields' DeleteIsProhibited="yes" >
   <field Name="TypeName" Label="TypeName" ActualFldName="ObjectName" ActualObjTypeId="FieldSet" IsRequired="yes" DataType="DTYPE_TEXT" IsNullable="no" IsFilterable="no" IsRefObjId="yes" RefObjTypeId="FieldSet" RefObjIsParent="yes" IsFake="yes" />
   <field Name="IncludeAll" Label="IncludeAll" ActualFldName="IncludeAll" ActualObjTypeId="FieldSet" DataType="DTYPE_TEXT" IsFilterable="no" IsFake="yes" />
   <field Name="Name" Label="Name" DataType="DTYPE_TEXT" IsPrimaryKey = "yes" />
   <field Name="IntegrationTag" Label="IntegrationTag" DataType="DTYPE_TEXT" IsPrimaryKey = "yes" />
   <field Name="GenericIntegrationTag" Label="GenericIntegrationTag" DataType="DTYPE_TEXT" />
   <field Name="Required" Label="Required" DataType="DTYPE_BOOL" />
</object>

<object TypeId="User.DefaultBooks" Label="User.DefaultBooks" LabelPlural="User.DefaultBooks" ViewMode="Sales Rep" XmlElemName="UserDefaultBookPerType" XmlCollectionElemName="ListOfUserDefaultBookPerType" DeleteIsProhibited="yes" >
   <field Name="AccessObjectId" Label="AccessObjectId" DataType="DTYPE_TEXT" />
   <field Name="AccessObjectName" Label="AccessObjectName" DataType="DTYPE_TEXT" />
   <field Name="BookDescription" Label="BookDescription" DataType="DTYPE_TEXT" />
   <field Name="BookId" Label="BookId" DataType="DTYPE_TEXT" IsRefObjId="yes" RefObjTypeId="BookRaw" IsFilterable='no' />
   <field Name="BookName" Label="BookName" DataType="DTYPE_TEXT" />
   <field Name="Id" Label="Id" DataType="DTYPE_ID" IsPrimaryKey="yes" IsFilterable='no' IsHidden="yes" />
   <field Name="IncludeSubBooks" Label="IncludeSubBooks" DataType="DTYPE_BOOL" />
   <field Name="ModId" Label="ModId" DataType="DTYPE_INTEGER" IsTimestamp="yes" IsFilterable='no' IsHidden="yes" />
   <field Name="UserId" Label="UserId" ActualFldName="Id" ActualObjTypeId="User" IsRequired="yes" DataType="DTYPE_ID" IsNullable="no" IsFilterable="no" IsRefObjId="yes" RefObjTypeId="User" RefObjIsParent="yes" IsFake="yes" />
   <!-- inherited from parent -->
   <field Name="CurrencyCode" Label="Currency Code" DataType="DTYPE_TEXT" ActualFldName="CurrencyCode" ActualObjTypeId="User" IsFilterable="no" />
   <!-- <field Name="DefaultBookId" Label="DefaultBookId" ActualFldName="DeftBookId" ActualObjTypeId="User" DataType="DTYPE_TEXT" IsFilterable="no" /> -->
   <field Name="DefaultBookName" Label="DefaultBookName" ActualFldName="DefaultBookName" ActualObjTypeId="User" DataType="DTYPE_TEXT" IsFilterable="no" />
   <field Name="FullName" Label="Full Name" DataType="DTYPE_TEXT" CRMName="Full Name" ActualFldName="FullName" ActualObjTypeId="User" IsFilterable="no" />
   field Name="LanguageCode" Label="Language Code" ActualFldName="LanguageCode" ActualObjTypeId="User" DataType="DTYPE_TEXT" IsFilterable="no" />
   <field Name="PrimaryPositionId" Label="PrimaryPositionId" DataType="DTYPE_TEXT" ActualFldName="PrimaryPositionId" ActualObjTypeId="User" IsFilterable="no" />
   <field Name="RoleId" Label="Role Id" ActualFldName="RoleId" ActualObjTypeId="User" DataType="DTYPE_TEXT" IsFilterable="no" />
   <field Name="SalesProcessId" Label="Sales Process Id" ActualFldName="SalesProcessId" ActualObjTypeId="User" DataType="DTYPE_TEXT" IsFilterable="no" />
   <field Name="SalesProcessName" Label="Sales Process Name" ActualFldName="SalesProcessName" ActualObjTypeId="User" DataType="DTYPE_TEXT" IsFilterable="no" />
   <field Name="UserSignInId" Label="User Sign In Id" DataType="DTYPE_TEXT" IsHidden="yes" ActualFldName="UserSignInId" ActualObjTypeId="User" />
</object>

<picklist TypeId='TypeDefaultBookPL' SrcObjectTypeId='User.DefaultBooks' ValueFldName='AccessObjectName' LabelFldName='AccessObjectName' Artificial="true">
   <extra_src_fldname Visible="true">BookId</extra_src_fldname>
   <extra_src_fldname Visible="true">IncludeSubBooks</extra_src_fldname>
</picklist>

<picklist TypeId='BookPL' SrcObjectTypeId='BookRaw' ValueFldName='Id' LabelFldName='BookName' OrderByExpression=':[:(BookName):]'>
   <extra_src_fldname Visible="true">ParentBookName</extra_src_fldname>
   <extra_src_fldname Visible="true">ParentBookId</extra_src_fldname>
   <extra_src_fldname Visible="true">BookType</extra_src_fldname>
   <extra_src_fldname Visible="true">CanContainDataFlag</extra_src_fldname>
</picklist>

<picklist TypeId='FieldsInfoPL' SrcObjectTypeId='FieldSet.Fields' ValueFldName='IntegrationTag' LabelFldName='IntegrationTag' OrderByExpression=':[:(IntegrationTag):]'>
   <extra_src_fldname Visible="true">TypeName</extra_src_fldname>
   <extra_src_fldname Visible="true">Required</extra_src_fldname>
   <extra_src_fldname Visible="false" OutVal="true">IncludeAll<
   extra_src_fldname>
</picklist>

Oracle CRM On Demand Desktop Administration Guide, Version 5.1, Rev A Copyright © 2017, Oracle and/or its affiliates. All rights reserved. Legal Notices.