Import XML: unintended consequences

The XML import process directly inserts records into the target table. During the import the system:

– Ignores any business rules that normally apply to the table.

– Does not provide any opportunity to transform incoming data.

Automatically matches a reference field’s display value to the local Sys ID for some tables.

If you need to validate or transform data or reconcile the sys ID values of reference fields, use an XML import set instead.

XML records from lists

Affected references:

  • User [sys_user]
  • Group [sys_user_group]
  • Role [sys_user_role]
  • Group Roles [sys_group_has_role]

Usually, you won’t have problems with Groups or Roles, as you shouldn’t have duplicate names.

But what about users? In a large company,  you can be 100% sure that you will have some people sharing the same name.

You could have several Joe Employees.

Example: Migrating delegates

Source instance

In the source instance, we have two users with the name Joe Employee (employee and employee2).

Each of them has a delegate.

When we export the XML, we can see that the sys_ids for the user in each of the delegates are different.

Target instance

In the target instance, we only have one user with the name Joe Employee (employee)

When we import the XML, instead of ignoring the second record because the user sys_id doesn’t match any record in the table, it matches the display value.

Both records are linked to the only Joe Employee in this instance.

More info: