You must only make compatible changes to a mapping between two application components. If you need to make incompatible changes, you must create a new mapping. This requirement is relatively easy to fulfill since only optional elements and attributes are normally added to a message in a new release.
A mapping is created based on messages from CRM 2.0 and APO 2.0. However, messages from other releases are also mapped or the message created runs in target systems with differing releases:
The section below discusses how you can ensure that the mapping to CRM 2.0 can process all inbound messages without causing any compatibility problems in the various target systems.
Since the only differences between CRM 1.0 and CRM 2.0 are optional elements or attributes, this message could have also come from a CRM 2.0 system that did not include these optional fields. The mapping should therefore be able to map the message. This can be guaranteed if:
· Optional fields in the source message are only mapped to optional fields in the target message
· Any obligatory target fields missing from the source are completed with default values (for example, this can be done for a message mapping by using the standard function exists)
The additional elements or attributes are ignored. This can be ensured if the mapping identifies the source fields by using explicit path specifications (for example, "//OrderHeader/ShipTo" ), instead of ’counting’ the number of fields. Do not use any of the following methods:
· Absolute positioning (for example, the third element in the first structure).
· Include the frequency that fields occur (for example, “if there are ten elements in the sub structure then…”)
The proxies ignore any additional fields so this does not pose a problem.
APO 3.0 contains additional fields that are not part of APO 2.0. Since these are optional fields, they do not pose a problem.