Cross referencing is used to prevent you from propagating system dependent unique ids across every system in your integration.
For example if you are integrating an Oracle system with Clarify. Oracle uses primary keys in combination with the table to ensure uniqueness whereas Clarify uses globally unique object ids.
When the clarify side of the integration receives an event that was published from the Oracle side of the integration, how will you check if you have already received the event and that this should be an update in Clarify rather than an insert? You don’t want to store the oracle primary key in Clarify and vice versa. For two systems it might seem to be ok, but when your integration grows to include many systems, then each system will have many different kinds of ids.
The solution is to create integration wide unique ids, also called Canonical ids, that you use when you create the canonical events/documents for publication. The cross references are used to map your system dependent ids to the canonical ids.
Example:
1 - Oracle side creates a canonical id and makes sure there is an entry from the oracle id to the canonical id in the cross reference table.
2 - Oracle side publishes canonical event
3 - Clarify side receives canonical event
4 - Clarify side checks the crossreference table to see if there is a mapping from the canonical id to the siebel id. If one exists then the canonical contains update information and if one does NOT exist then the canonical contains new information.
5 - Update or insert the Clarify side with the information from the canonical.
5 - Insert a crossreference entry mapping the canonical id to the correct clarify id, if one did not already exist.
One word of warning. wM is overloading the use of the cross reference tables with latching functionality. This is to prevent circular dependencies and subsequent infinite loops. Because they are using the same set of tables for more than one purpose, the cross reference tables are sometimes more difficult to understand than they should be.
Have fun,
Andreas
#Integration-Server-and-ESB#webMethods#Adapters-and-E-Standards