Skip Headers
Oracle® Application Integration Architecture Oracle Product Master Data Management Integration Implementation Guide
Release 11.1

Part Number E27426-03
Go to Documentation Home
Go to Book List
Book List
Go to Table of Contents
Go to Feedback page
Contact Us

Go to previous page
Go to next page
PDF · Mobi · ePub

C User Defined Attributes Framework

This appendix includes the following sections:

C.1 Extending for Custom UDAs

The user defined attributes can be classified as:

For more information about the different types of attributes and how they are handled, see 'Synchronization of Metadata' in Section 2.1, "Supported Features and Process Flows".

C.1.1 Handling UDAs

The Product MDM integration provides the following mappings:

  • Operational attributes of the item (also referred as First Class Attributes) in OPH 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. Note that operational attributes are not mapped to product/discount definition in BRM

  • Seeded attributes of the item (user defined attributes) in OPH are mapped to the fixed elements in the itemEBO which are mapped to the product definition attributes in Siebel and product/discount attributes in BRM. Note: Seeded attributes are not synchronized to EBIZ.

  • Custom attributes of the item (User Defined Attributes) in Product Hub are mapped to the Specification group element in the itemEBO. Those custom attributes whose attribute group name start with XX are mapped to the user defined attributes in Siebel and all other custom attributes are ignored in the target application connector services for Siebel, Oracle BRM and Oracle E-Business Suite.

  • Transaction attributes in OPH are mapped to the specificationEBO which are mapped to the attribute definition in Siebel. Note that the transaction attributes are not synchronized to Oracle E-Business Suite and Oracle BRM.

All downstream systems need not consume all the UDA attributes. The UDA service will dynamically populate the OPH/PIM ABM with only those UDA attributes that are instantiated as part of the particular Item Event raised by OPH.

  • When an item is created from an item catalog category (ICC) that has a wide set of UDAs, 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.

C.1.2 Mapping Artifacts

The following artifacts specify the mapping from OPH to the canonical models.

C.1.2.1 Mapping Operational Attributes to ItemEBM


  • XformItemResponsePIMABMToSyncItemListEBM.xsl

  • XformItemListResponsePIMABMToSyncItemListEBM_Custom.xsl

This is the mapping between OPH/PIM's operations attribute to EBM. Customer specific transformations related extensions should be done in XformItemListResponsePIMABMToSyncItemListEBM_Custom.xsl.

C.1.2.2 Mapping Seeded Set of UDAs for Communications library to EBM


  • XformUDAAGInterfaceCommsPIMBOMRespABMToSyncBOMEBM.xsl

  • XformUDAAGInterfaceCommsPIMItemRespABMToSyncItemListEBM.xsl

  • XformUDACommsPIMBOMRespABMToSyncBOMEBM.xsl

  • XformUDACommsPIMBOMRespABMToSyncBOMEBM_Custom.xsl

  • XformUDACommsPIMItemRespABMToSyncItemListEBM.xsl

  • XformUDACommsPIMItemRespABMToSyncItemListEBM_Custom.xsl

  • XformRestructureSyncBillOfMaterialsListEBM.xsl

  • XformRestructureSyncItemListEBM.xsl

C.1.2.3 Mapping Pricelist related UDAs for Communications Library to EBM

  • XfromListOfItemsToSyncPriceListListEBM.xsl

The entire communications library seeded UDAs are mapped to EBM. For each attribute group, 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 attribute group:

  • XformUDACommsPIMBOMRespABMToSyncBOMEBM.xsl

  • XformUDACommsPIMItemRespABMToSyncItemListEBM.xsl

    The mapping related to the discount and promotion type entities are passed from OPH/PIM UDA to a Specification group in the EBM.

C.2 Implementation of UDA Transformation

Figure C-1 illustrates the UDAs to first class attributes (FCA) transformation in ItemEBM:

Figure C-1 Adding UDA to an FCA in Item EBM

Adding UDA to FCA


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:

  1. Document all the new UDAs.

    Table C-1shows an example of a UDA Attribute Group (AG):

    Table C-1 Example of UDA AG

    Attribute Group Display Name Attribute Group Internal Name

    Item Manufacture












  2. Define transformation for each attribute of the attribute group in industry/application specific XSL file.

    Figure C-2 provides an example of how to define transformations for each of the elements in the attribute group in the XformUDACommsPIMItemRespABMToSyncItemListEBM.xsl.

    Figure C-2 Code Sample

    Code sample
  3. Declare each template, which processes the attribute group in interface file, under ProcessAttributeGroupUDA template.

    Figure C-3 shows a code sample:

    Figure C-3 Code sample

    code sample
  4. 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.

    Figure C-4 shows a code sample:

    Figure C-4 Code sample

    code sample
  5. Re-deploy the OPH/PIM requestor service.

C.2.1 Mapping Custom UDAs to EBM


This is the recommended approach for handling custom UDAs.

  • 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 attribute group name to avoid duplicate attributes across the attribute groups. For example, a new attribute SupplierName added to the attribute group Suppliers will have the internal name Suppliers_SupplierName.

  • It is the responsibility of the provider to consume the data as required. Out-of-the-box these will be mapped to Flexfield attributes (User defined attributes user interface) in Siebel

  • No change in the OPH/PIM Requestor is needed to support this.

C.2.2 Artifacts (Requester ABCS)

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

C.2.3 Artifacts (Siebel Provider ABCS):

In Provider ABCS, specification group name starting with XX is mapped to Flexfield attributes (User defined attributes user interface) in Siebel.

  • XformSyncItemListEBMToSiebelProdABM.xsl

  • XformUDAInterfaceCommsSiebelPromotionEBMToABM.xsl

  • XformUDACommsSiebelProductEBMToABM.xsl

  • XformUDACommsSiebelProductEBMToABM_Custom.xsl

  • XformRestructureProductABM.xsl

  • XformSyncItemListEBMToSiebelPromotionABM.xsl

  • XformUDAInterfaceCommsSiebelProductEBMToABM.xsl

  • XformUDACommsSiebelPromotionEBMToABM.xsl

  • XformUDACommsSiebelPromotionEBMToABM_Custom.xsl

  • XformRestructurePromotionABM.xsl

C.3 Performance Optimization Using Chunking

As per the statistics and architecture proposal, the input payload for orchestration process should not exceed 2MB else it might lead to transaction time out/heap memory issue. To handle this issue, the OPH/PIM Req ABCS service invokes the OPH/PIM 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 OPH/PIM Query Adapter services to query the Items and BOMs, the services refer to the value of BATCH_SIZE as defined in 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 OPH/PIM batch output table. PL/SQL API: AIA_MDMITEMBATCH.

C.3.1 Specifying the Batch Size

To specify the batch size for chunking for items or item structures:

  1. 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

  2. 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.


Number of item structures (without option class at component level) in batch: 15; BATCH_SIZE: 5


Number of item structures (with three option class at component level) in batch: 15; BATCH_SIZE: 2