Introduction to Cross Reference Tables

Cross references are stored in the form of tables. Table 44-1 shows a cross reference table containing information about customer identifiers in different applications.

Table 44-1 Cross Reference Table Sample

SAP EBS SBL

SAP_001

EBS_1001

SBL001

SAP_002

EBS_1002

SBL002

The identifier mapping is also required when information about a customer is updated in one application and the changes must be propagated to other applications. You can integrate different identifiers by using a common value integration pattern, which maps to all identifiers in a cross reference table. For example, you can add one more column named Common to the cross reference table shown in Table 44-1. The updated cross reference table then appears, as shown in Table 44-2.

Table 44-2 Cross Reference Table with Common Column

SAP EBS SBL Common

SAP_001

EBS_1001

SBL001

CM001

SAP_002

EBS_1002

SBL002

CM002

Figure 44-1 shows how you can use common value integration patterns to map identifiers in different applications.

Figure 44-1 Common Value Integration Pattern Example

Description of Figure 44-1 follows
Description of "Figure 44-1 Common Value Integration Pattern Example"

A cross reference table consists of two parts: metadata and actual data. The metadata is saved as the .xref file created in Oracle JDeveloper, and is stored in the Metadata Services (MDS) repository as an XML file. By default, the actual data is stored in the XREF_DATA table of the database in the SOA Infrastructure database schema. You can also generate a custom database table for each cross reference entity. The database table depends on the metadata of the cross reference entity.

Consider the following two cross reference entities:

  • ORDER with cross reference columns SIEBEL, COMMON, and EBS, as shown in Table 44-3

  • CUSTOMER with cross reference columns EBS, COMMON, and PORTAL, as shown in Table 44-4

Table 44-3 ORDER Table

Column Name SIEBEL COMMON EBS

Column Value

SBL_101

COM_100

EBS_002

Column Value

COM_110

EBS_012

Table 44-4 CUSTOMER Table

Column Name EBS COMMON PORTAL

Column Value

EBS_201

COM_200

P2002

If you chose to save all the runtime data in one generic table, then the data is stored in the XREF_DATA table, as shown in Table 44-5.

Table 44-5 XREF_DATA Table

XREF_TABLE_NAME XREF_COLUMN_NAME ROW_NUMBER VALUE IS_DELETED

ORDER

SIEBEL

100012345

SBL_101

N

ORDER

COMMON

100012345

COM_100

N

ORDER

EBS

100012345

EBS_002

N

ORDER

COMMON

110012345

COM_110

N

ORDER

EBS

110012345

EBS_012

N

CUSTOMER

EBS

200212345

EBS_201

N

CUSTOMER

COMMON

200212345

COM_200

N

CUSTOMER

PORTAL

200212345

P2002

N

This approach has the following advantages:

  • The process of adding, removing, and modifying the columns of the cross reference entities is simple.

  • The process of creating and deleting cross reference entities from an application is straightforward.

However, this approach has the following disadvantages:

  • A large number of rows are generated in the database because each cross reference cell is mapped to a different row in the database. This reduces the performance of the queries.

  • In the generic table, the data for the columns XREF_TABLE_NAME and XREF_COLUMN_NAME is repeated across a large number of rows.

To overcome these problems, you can generate a custom database table for each cross reference entity. The custom database tables depend on the metadata of the cross reference entities. For example, for the XREF_ORDER table and XREF_CUSTOMER table, you can generate the custom database tables shown in Table 44-6 and Table 44-7.

Table 44-6 XREF_ORDER Table

ROW_ID SIEBEL COMMON EBS

100012345

SBL_101

COM_100

EBS_002

110012345

COM_110

EBS_012

Table 44-7 XREF_CUSTOMER Table

ROW_ID EBS COMMON PORTAL

200212345

EBS_201

COM_200

P2002

This approach requires you to execute Data Definition Language (DDL) scripts to generate the custom database tables. For more information about custom database tables, see How to Create Custom Database Tables.