This appendix provides information about the user defined attributes (UDA) framework.
You can classify user defined attributes as:
Seeded attributes.
Custom attributes.
Transaction attributes.
For more information about the different types of attributes and how to handle them, see "About the Integration Base Pack".
Product Master Data Management integration provides the following mappings:
Operational attributes of the item (First Class Attributes) in Oracle Product Hub are mapped to the fixed elements in the itemEBO which are mapped to the item definition attributes in Oracle E-Business Suite and product definition attributes in Siebel CRM. Note that operational attributes are not mapped to product/discount definition in Oracle Communication Billing and Revenue Management (BRM).
Seeded attributes of the item (user defined attributes) in Oracle Product Hub are mapped to the fixed elements in the itemEBO which are mapped to the product definition attributes in Siebel CRM and product/discount attributes in BRM. Note: Seeded attributes are not synchronized to E-Business Suite.
Custom attributes of the item (User Defined Attributes) in Oracle Product Hub are mapped to the Specification group element in the itemEBO. Those custom attributes whose attribute group (AG) name start with XX are mapped to the user defined attributes in Siebel CRM and all other custom attributes are ignored in the target application connector services for Siebel CRM, BRM and E-Business Suite.
Transaction attributes in Oracle Product Hub are mapped to the specificationEBO which are mapped to the attribute definition in Siebel CRM. Note that the transaction attributes are not synchronized to Oracle E-Business Suite and BRM.
All downstream systems need not consume all the UDAs. The UDA service will dynamically populate the Oracle Product Hub ABM only with UDAs instantiated as part of the particular Item Event raised by Oracle Product Hub.
When an item catalog category that has a wide set of UDAs creates an item, it is possible that only a subset of the same would have to be mapped to the participating applications or only a subset would have been initialized as part of the particular item. As part of the service, only the attributes initialized are mapped to the itemEBO as a first class attribute (FCA) or as SpecificationGroup.
The following artifacts specify the mapping from Oracle Product Hub to the canonical models.
Artifacts:
XformItemResponsePIMABMToSyncItemListEBM.xsl
XformItemListResponsePIMABMToSyncItemListEBM_Custom.xsl
This is the mapping between Oracle Product Hub's operations attribute to EBM. Customer specific transformations related extensions should be done in XformItemListResponsePIMABMToSyncItemListEBM_Custom.xsl.
Artifacts:
XformUDAAGInterfaceCommsPIMBOMRespABMToSyncBOMEBM.xsl
XformUDAAGInterfaceCommsPIMItemRespABMToSyncItemListEBM.xsl
XformUDACommsPIMBOMRespABMToSyncBOMEBM.xsl
XformUDACommsPIMBOMRespABMToSyncBOMEBM_Custom.xsl
XformUDACommsPIMItemRespABMToSyncItemListEBM.xsl
XformUDACommsPIMItemRespABMToSyncItemListEBM_Custom.xsl
XformRestructureSyncBillOfMaterialsListEBM.xsl
XformRestructureSyncItemListEBM.xsl
XfromListOfItemsToSyncPriceListListEBM.xsl
The entire communications library seeded UDAs are mapped to EBM. For each AG, a mapping template is declared in the Interface xsl.
The following xsls are used to implement the same:
XformUDAAGInterfaceCommsPIMBOMRespABMToSyncBOMEBM.xsl
XformUDAAGInterfaceCommsPIMItemRespABMToSyncItemListEBM.xsl
The mappings for UDAs are defined in the following xsl for each of the attributes within the AG:
XformUDACommsPIMBOMRespABMToSyncBOMEBM.xsl
XformUDACommsPIMItemRespABMToSyncItemListEBM.xsl
The mapping related to the discount and promotion type entities are passed from Oracle Product Hub UDA to a Specification group in the EBM.
Figure C-1 illustrates the UDAs to FCAs transformation in ItemEBM:
Figure C-1 Adding UDA to a FCA in Item EBM
Note:
It is not recommended to add or modify the mapping from seeded user defined attributes to the first class attributes.To add UDA to an FCA in Item EBM:
Document all the new UDAs.
Table C-1 shows an example of a UDA AG:
Define transformation for each attribute of the AG in industry/application specific XSL file.
For example:
<xsl:template name=" ItemManufactureAttrGeneral"> <corecomEBO:ItemManufacture> <corecom:Identification> <corecom:ID> <xsl:value-of select="ItemUDA[Name='ItemManufacture_ID']/CharValue"/> </corecom:ID> </corecom:Identification> <corecom:PriorityCode> <xsl:value-of-select="ItemUDA[Name='ItemManufacture_Priority']/CharValue"/> </corecom:PriorityCode> <corecom:EffectiveTimePeriod> <corecom:StartDateTime> <xsl:call-template name="formatUDADate"> <xsl:with-param name="formatDateParam"select="ItemUDA[Name='ItemManufacture_StartDate']/DatetimeValue"/> </xsl:call-template> </corecom:StartDateTime> <corecom:EndDateTime> <xsl:call-template name="formatUDADate"> <xsl:with-param name="formatDateParam"select="ItemUDA[Name'ItemManufacture_EndDate']/DatetimeValue"/> </xsl:call-template> </corecom:EndDateTime> </corecom:EffectiveTimePeriod> <corecom:Status> <xsl:value-of-select="ItemUDA[Name='ItemManufacture_Status']/CharValue"/> </corecom:Status> </corecomEBO:ItemManufacture> </xsl:template>
Declare each template, which processes the AG in interface file, under ProcessAttributeGroupUDA template.
For example:
<xsl:template name-"ProcessAttributeGroupUDA"> <xsl:when test-"$Name-'ItemManufacture'"> <xsl:call-template name=" ItemManufactureAttrGeneral"/> </xsl:when> </ xsl:template>
Rearrange the UDA elements in restructure transformation file as per the schema.
Example: re-Arrange the UDA Elements as per the schema in restructure transformation file (XformRestructureSyncItemListEBM.xsl).
In this file, the reference to the attribute must follow the same sequence of elements as defined in EBM. In this example, if a UDA is mapped to ItemManufacturer, the EBM element ItemManufacturer in the EBM.XSD is after Item Supplier. The newly mapped element must follow the same sequence.
For example:
<xsl:template match="/"> <ns0:SyncItemListEBM> <xsl:for-each select="/ns0:SyncItemListEBM/ns0:DataArea"> <ns0:DataArea> <xsl:apply-templates select="corecom:Sync"/> <ns0:SyncItemList> <corecomEBO:ItemSupplier> </corecomEBO:ItemSupplier> <xsl:apply-templates select="ns0:SyncItemList/corecom:Revision/corecomEBO:Item Manufacturer"/> <xsl:apply-templates select="ns0:SyncItemList/corecom:ItemIdentification/corec om:Revision/corecomEBO:RelatedItem"/> <corecomEBO:ItemRevisionHistory> </ ns0:SyncItemList> </ns0:DataArea>
Re-deploy the Oracle Product Hub requester service.
Note:
This is the recommended approach for handling custom UDA.Define all the custom AG with Prefix of "XX." For example: XX_Suppliers.SupplierName.
In case of custom UDAs not defined by prefixing XX, the attributes will be transformed to specification group in EBM and it will be the responsibility of implementation to handle the transformation of the same as part of the provider service custom extensions.
The name of the custom attributes must prefix the AG name to avoid duplicate attributes across the AGs. For example, a new attribute SupplierName added to the AG Suppliers will have the internal name Suppliers_SupplierName.
It is the responsibility of the provider to consume the data as required. Ready-to-use these will be mapped to Flexfield attributes (User defined attributes user interface) in Siebel CRM.
No change in the Oracle Product Hub requester is needed to support this.
The following artifacts can be found under PIPS\Core\PIM\RequestorABCS\SyncItemListPIMReqABCSImpl\bpel where the integrations have been downloaded and are installed:
XformUDAAGInterfaceCommsPIMBOMRespABMToSyncBOMEBM.xsl
XformUDAAGInterfaceCommsPIMItemRespABMToSyncItemListEBM.xsl
XformUDACommsPIMBOMRespABMToSyncBOMEBM_Custom.xsl
XformUDACommsPIMItemRespABMToSyncItemListEBM_Custom.xsl
XformRestructureSyncBillOfMaterialsListEBM.xsl
XformRestructureSyncItemListEBM.xsl
In Provider ABCS, specification group name starting with XX is mapped to Flexfield attributes (User defined attributes user interface) in Siebel CRM.
XformSyncItemListEBMToSiebelProdABM.xsl
XformUDAInterfaceCommsSiebelPromotionEBMToABM.xsl
XformUDACommsSiebelProductEBMToABM.xsl
XformUDACommsSiebelProductEBMToABM_Custom.xsl
XformRestructureProductABM.xsl
XformSyncItemListEBMToSiebelPromotionABM.xsl
XformUDAInterfaceCommsSiebelProductEBMToABM.xsl
XformUDACommsSiebelPromotionEBMToABM.xsl
XformUDACommsSiebelPromotionEBMToABM_Custom.xsl
XformRestructurePromotionABM.xsl
As per the statistics and architecture proposal, the input payload for orchestration process should not exceed 2MB or it might lead to transaction time out/heap memory issue. To handle this issue, the Oracle Product Hub Req ABCS service invokes the Oracle Product Hub Query Adapter service to fetch the payload in fixed chunks or size. It processes the list of items/item structure in sub-batch. As part of the Oracle Product Hub Query Adapter services to query the Items and Bill of Materials (BOMs), the services refer to the value of BATCH_SIZE as defined in Oracle Application Integration Architecture (Oracle AIA) Configuration property at the service level to decide the chunk size.
SQLX technology has been used to query the chunk of item/item structure from Oracle Product Hub batch output table. PL/SQL API: AIA_MDMITEMBATCH.
To specify the batch size for chunking for items or item structures:
QUERY_ITEM: Modify the value for the configuration property BATCH_SIZE in AIAConfigurationProperties.xml- for the service QueryItemListPIMAdapter. Set the number of items to be processed in each chunk. This value needs to be set based on typical number of items in batch/payload size and server configuration.
Example: Number of Items in Batch: 30; BATCH_SIZE: 5
QUERY_BOM: Modify the value for the configuration property BATCH_SIZE in AIAConfigurationProperties.xml for the service QueryBillOffMaterialsListPIMAdapter. Set the number of item structures to be processed in each chunk. This value needs to be set based on three considerations:
Number of item structure in batch/payload size.
"The number BOM component that has version structure UDA with Domain_Type value as 'CLASS' in the particular BOM.
"Server configuration.
Example:
Number of item structures (without option class at component level) in batch: 15; BATCH_SIZE: 5
Or
Number of item structures (with three option class at component level) in batch: 15; BATCH_SIZE: 2