Problem:
I see an error message "Lookup resolving error: 1003: RDM canonical value mapping not found for value".
I can see the unmapped error in the RDM console.
Solution:
- If the feature for track transcode errors is turned on, whenever a linked MDM tenant has a transcode problem, RDM creates an unmapped value.
- If you have unmapped values, you can fix them by dragging and dropping them on the mapping tab. After that, when you save changes, the UI creates new mapping and removes the unnecessary unmapped. This is a single way to “clear“a list of unmapped values.
- If you have an unmapped value and have the exact lookup mapping, you could use an RDM API request to remove redundant unmapped values (as defined below)
- You can execute the following task to remove a specific RDM lookup
POST https://rdm.reltio.com/tasks/<rdmTenant>
{
"type": "deleteUnmapped",
"parameters": {
"type": "rdm/lookupTypes/LOBSurvivorshipOrder"
}
}
- You will see that the task is completed as expected
{
"id": "9849f112-f45b-4fef-8f74-2b5ffe283e05",
"type": "deleteUnmapped",
"tenantId": "<tenantId>",
"createdBy": "gloria.faley@reltio.com",
"createdTime": 1639702088450,
"status": "FINISHED",
"parameters": {
"type": "rdm/lookupTypes/LOBSurvivorshipOrder"
},
"result": {
"Value processed": 7, <<- number of lookup that were fixed in the task.
"Errors": 0,
"Average per second": 8.526187576126675,
"Execution time": 821
}
},
- Executing the following API to remove all redundant unmapped values is also possible.
POST https://rdm.reltio.com/tasks/<rdmTenantId>
{
"type": "deleteUnmapped"
}
-
- Please also execute a reindex of the RDM (either the total or the specific lookup type)
POST https://{{rdm-service}}/tasks/{{RDMtenantId}} Authorization: Bearer {{token}} { "type": "reindex" }
POST https://{{rdm-service}}/tasks/{{tenantId}} Authorization: Bearer {{token}} { "type": "reindex", "parameters": { "type": "rdm/lookupTypes/Country" } }
- After fixing unmapped errors, you'll need to execute the following task to reindex entities and resolve unresolved RDM lookups in MDM. Two physical tenant properties should be reviewed before running the API call below.
resolveLookupCode = true. This means that the lookup code is stored in C*, regardless of whether the lookup code or value was specified in the entity POST request. So, lookupCode is used in the calculations above to find matches.
resolveLookupCode = false (default). The lookup attribute's " raw " value (specified in the entity POST request) is recorded to C*. In this case, lookupvalue is used to define matches.
Note: Once the lookup code configuration is enabled (resolveLookupCode
=true
), it is only possible to revert the data to its original state by reloading your profile data. For more information regarding this, please review https://docs.reltio.com/en/explore/get-going-with-apis-and-rocs-utilities/reltio-rest-apis/model-apis/lookups-api/resolve-attribute-or-tenant-lookups#update-configured-lookup-values-0. Your lookup data is stored in the tenant's primary database, and these values will not automatically update.
Upon transition from the default value (false) to resolveLookupCode = true, the following changes are performed:
- In response to a GET entity request, instead of lookup a value, the attribute contains lookupValue, which corresponds to lookupCode.
- The value stored in C* remains the same. It is changed to the code when the entity is updated:
- Update any attribute of the entity via a cumulative update, full or partial override (see example
- Update crosswalk, e.g. “
updateDate
” (see example 2) - Update the lookup attribute even with the same value (see example 3)
- Update of startDate or endDate of the whole entity, and the Reindex task doesn’t force C* to update the code.
Note: Changing the value of this parameter could lead to unexpected re-cleansings. It could happen if some address attribute was initially loaded using the lookup value when the resolveLookupCode
was false
. In this case, we used this lookup value to clean an address. And if later you will enable resolving lookups using a lookup code, we will start to use a lookup code. So if after enabling the option, you will change any attribute (it could be a new one, or even not an address-related attribute), our platform will see that right now we should use a new value for cleansing and we will reclean an address that is already cleansed and was not actually changed.
If you are using the default, you can proceed further. If not, reload the data.
POST https://<environment>.reltio.com/reltio/api/<MDMTenantID>/reindexUnresolvedRdmLookups
If you are making a bulk change in the L3 (data model) to attributes using the RDM lookup value, please perform a full MDM reindex (where the task builds a new index). This can only be executed if resolveLookupCode is set to false.
POST {ApplicationURL}/reindex
?tenantId={tenantId}&enableSeparateIndexing=true&updateEntities=true
&forceIgnoreInStreaming=true
- If you still have what appears to be a redundant unmapped value in RDM, please check for any special character.
Comments
Please sign in to leave a comment.