Introduction to DVMs When to Use DVMs Using Cross-Referencing

Working with Message Transformations 23-7

23.3.2 How to Make the Transformation Template Industry Extensible

Mapping rules pertaining to customer-specific schema extensions are defined in these xsl extension templates. To make the transformation template industry extensible: 1. Put the extension templates into a separate transformation file. 2. Import from the main transformation file. Example 23–8 shows the industry extensible transformation template. Example 23–8 Industry Extensible Transformation Template xsl: template name=Core_AddressTemplate xsl:param name = context select =. xsl:param name = contextType select =CORE address1xsl:value-of select=contextaddress1address1 address2xsl:value-of select=contextaddress1address2 cityxsl:value-of select=contextcitycity statexsl:value-of select=contextstatestate zipxsl:value-of select=contextzipzip xsl:if test=contextType=CORE xsl:call-template name=Vertical_AddressTemplate xsl:with-param name=context select=context xsl:with-param name=contextType select=contextType xsl:call-template xsl:if xsl: template

23.4 Working with DVMs and Cross-References

This section discusses DVMs, cross-references, and naming standards, and when to use them.

23.4.1 Introduction to DVMs

Use domain values only for static lookups. Do not use them to store configuration or setup data. A separate facility is provided to store and retrieve parameterized configuration information. To access the DVM at run time, use the lookup-dvm XSL function found in the JDeveloper XSL Mapper. DVMs are stored in the MDS repository, which uses the database persistence, and are managed using tools provided by JDeveloper or Foundation Pack. For more information about naming standards, see Chapter 29, Oracle AIA Naming Standards for AIA Development.

23.4.2 When to Use DVMs

DVMs can be categorized into three groups: ■ 100 percent of the possible values are seeded, and you are not permitted to define any more. Since logic is added to these values and they are defined by the participating applications, you cannot add values. 23-8 Developers Guide for Oracle Application Integration Architecture Foundation Pack ■ All or a few samples are seeded based on the seeded values found in the participating applications. You can add more to the participating applications and can add more to the DVMs in the middle to accommodate. Typically, logic is not added to these values; a match gets the value and passes it on to the receiving application. You must enhance the list to include all possible values that you have defined in your participating applications. ■ Customized. A naming convention is provided for you to define your own DVM types and values in case you have added a column that depends on it. These types or values are not affected during an upgrade. When creating cross-reference virtual tables in the cross-reference tables, follow the naming standards described in the following section.

23.4.3 Using Cross-Referencing

One of the core design tasks of ABCS is maintaining cross references for unique identifiers from the loosely coupled applications. AIA does not support hierarchical cross-references. Child object common keys are unique on their own without being under the parents context. This means that child objects have their own entry within the cross-references table with a GUID used for the common ID. The Cross References API does not support multi-part keys. In cases where the application does not have a single unique key, we recommend key concatenation: {Key1}::{Key2}::Key3 Most requester ABCSs use the following logic in the transformations: 1. Look up in Xref for an existing common ID corresponding to the application ID. 2. If common ID is not found, then generate a new ID and populate the Xref table with the new ID. 3. Use the found or new common ID in the transformation. Cross referencing is achieved using EBM Object identification elements and the cross referencing APIs Populate Xref, Lookup Xref, Delete Xref provided by Oracle Mediator. Table 23–1 lists a cross referencing configuration implemented in the Product synchronization scenario between the Portal BRM and Siebel CRM systems ITEM_ID cross-references the BRM Portal ProductID and the Siebel ProductID. PRICELINE _ID cross-references the BRM Portal Product ID to Siebel PriceLineID. Table 23–1 Cross Referencing Configuration Entity Siebel CRM ID Common ID Oracle BRM ID Item ID Product ID Auto Generated GUID Product ID Price Line ID Price Line ID Auto Generated GUID Product ID Working with Message Transformations 23-9

23.4.4 How to Set Up Cross References