XML Resolution
Most system-generated foreign keys are stored in physical fields and characteristic tables and as such their legacy value is replaced with its corresponding new key as part of the insertion to production process. Rarely, maintenance objects may store system-generated foreign keys in an XML storage field, i.e. a field defined with the data type of CLOB or XML. This step is only applicable to such maintenance objects.
During this step, the system resolves convertible system-generated foreign keys that may reside in XML storage fields you may have loaded into the staging tables. This section provides some high level discussion about the XML resolution process.
The XML Resolution Table
It's important to understand that the system does not overwrite the prime-keys on the XML storage fields in the staging database, as this is a very expensive IO transaction. Rather, a corresponding XML resolution table exists for each table that defines an XML resolution field to capture each row's resolved XML storage content, i.e. the content with all the old keys replaced with the new assigned keys.
The convention "<1st letter of owner flag>R_​<table_​name>" is used to denote the XML resolution table name.
The insertion batch process that transfers the rows into the production database replaces each XML storage field with its resolved value from the corresponding XML resolution table.
A Batch Process Per Maintenance Object
Each of the maintenance objects that are eligible for conversion and support XML storage fields is provided with an XML resolution batch process. These batch processes must be run to resolves foreign keys that may reside in these XML storage fields.
These processes are multi-threaded and must be executed after the key assignment step has completed and before inserting data to production.
XML Resolution Eligibility
Not all maintenance objects that support XML storage fields actually store convertible system-generated foreign keys in their XML storage field. If none of the business objects associated with the maintenance object involve mapping of such foreign keys to an XML storage field then XML resolution is not needed for any row in the maintenance object. The XML resolution batch process detects such situation and completes right away without storing any rows in any of the maintenance object’s XML resolution tables.
Note:
If the XML resolution batch process detects that the maintenance object is eligible, the maintenance object must reference a physical BO.  If a product delivered business object supports system-generated foreign keys in an XML storage field, the product should be supplying a physical BO. If your implementation has system-generated foreign keys in an XML storage field in a custom business object for a maintenance object where the product has not supplied a physical BO, you must create a physical BO and link it to the maintenance object.
Only Resolved Values Are Captured
XML storage fields typically store large amounts of data. To avoid capturing the same XML content redundantly, the system only stores values in the resolved XML storage fields if the resolved value is different than the original value, i.e. at least one key was resolved.
If for a given record the resolved XML content is the same as the original content then the following rules apply:
If this is the primary table of the maintenance object a record is inserted into its corresponding XML resolution table for that record with no value in the XML storage field.
If this is a child table of the maintenance object then no record is inserted into the corresponding XML resolution for that record.
Reported Errors
Errors encountered during XML resolution are logged onto the conversion Validation Error (CI_​VAL_​ERR) table. Note that at the start of this job, all rows in the conversion error table for the process maintenance object are deleted.
You can view errors highlighted by the XML resolution process using the “Validation Error Summary” page.