Starting in the Madrid release, if a value in a List field does not match a record on the referenced table, a new record on that table will be created.

A List field is used as a reference to a list of entries on the field's referenced table. It is not appropriate to store a string value in a List field; instead, you should store the sys_id of the record on the referenced table. If the value does not exist on the referenced table, we either add a new record on the table or ignore the value. But in releases before Madrid, the List field was not properly handled and users were able to store string values in a List field.


To revert to pre-Madrid behavior for a transform where you're storing string values to a List field:
1. In the transform map, remove the field map for the List field.
2. Add an onBefore transform script to the transform map with a script value:

(function runTransformScript(source, map, log, target /*undefined onStart*/ ) {

// Add your code here
target.setDisplayValue('<targetTableListField>' , source.<stagingTableFieldName>);

})(source, map, log, target);

Applicable Versions

Madrid and higher.

Article Information

Last Updated:2019-08-02 20:39:55