Resolve Mapping Errors API
Learn how to resolve mapping errors with an API.
After the data is loaded to MDM, you may encounter mapping errors due to unresolved lookups. For example, the transcoded value from RDM for the Gender attribute is Male. If an entity with the value M is loaded, the entity is loaded with an invalid value. This results in a mapping error that must be resolved in RDM. This API enables you to search for all such mapping errors in the MDM tenant.
Make sure you execute the Reindex Data Task to enable the tenant to store invalid RDM lookups data. This way, using Hub, you can search for entities with mapping errors.
POST {ApplicationURL}/reindex?tenantId={tenantId}
Or
POST {ApplicationURL}/retio/api/{tenantId}/reindex
Similar to filtering entities, you can search for unresolved lookups as follows:
Request
GET {TenantURL}/entities?filter=equals(rdmLookups.resolved,false)
[
{
"uri":"entities/1CVEdeVp",
"type":"configuration/entityTypes/HCA",
"createdBy":"test.user@reltio.com",
"createdTime":1552457685430,
"updatedBy":"test.user@reltio.com",
"updatedTime":1555319017117,
"attributes":{
"Name":[
{
"type":"configuration/entityTypes/HCA/attributes/Name",
"ov":true,
"value":"Name",
"uri":"entities/1CVEdeVp/attributes/Name/2xqdgtdUt"
}
],
"TypeCode":[
{
"type":"configuration/entityTypes/HCA/attributes/TypeCode",
"ov":true,
"value":"InvalidCode",
"lookupError":"1003: RDM canonical value mapping not found in tenant [rdm]",
"uri":"entities/1CVEdeVp/attributes/TypeCode/2Bvzcr1eH"
}
],
"CountryCode":[
{
"type":"configuration/entityTypes/HCA/attributes/CountryCode",
"ov":true,
"value":"1",
"lookupCode":"AF",
"lookupRawValue":"AF",
"uri":"entities/1CVEdeVp/attributes/CountryCode/2xqdgthl9"
}
]
},
"isFavorite":false,
"crosswalks":[
{
"uri":"entities/1CVEdeVp/crosswalks/2Bvzcr5uX",
"type":"configuration/sources/Reltio",
"value":"1CVEdeVp",
"reltioLoadDate":"2019-04-15T09:03:37.117Z",
"createDate":"2019-03-13T06:14:45.430Z",
"updateDate":"2019-03-13T06:14:45.430Z",
"attributes":[
"entities/1CVEdeVp/attributes/TypeCode/2Bvzcr1eH",
"entities/1CVEdeVp/attributes/Name/2xqdgtdUt",
"entities/1CVEdeVp/attributes/CountryCode/2xqdgthl9"
],
"singleAttributeUpdateDates":{
"entities/1CVEdeVp/attributes/Name/2xqdgtdUt":"2019-04-15T09:03:37.117Z",
"entities/1CVEdeVp/attributes/CountryCode/2xqdgthl9":"2019-04-15T09:03:37.117Z"
}
}
],
"analyticsAttributes":{
},
"label":"Label",
"secondaryLabel":""
}
]
Search entities with transcode errors
You can search entities with transcode errors on attribute type and attribute value. You can find entities that have attribute values with unresolved lookups.
To search for entities with transcode mapping errors by attribute type and attribute value use:
equals(rdmLookups.attributes.Country, 'CA')
- Enables you to find the entities, which have transcode error for value CA in the attribute Country.equals(rdmLookups.attributes.Education.Degree, 'PhD')
- Enables you to find all the entities, which have transcode error for value PhD in sub-attribute Degree of the nested attribute Education.exists(rdmLookups.attributes.Education.Degree)
- Enables you to find all the entities, which have at least one value with transcode error in sub-attribute Degree of the nested attribute Education.
Examples for transcode errors for a specific attribute type or value
To find the entities with mapping transcode errors in any values of State attribute (part of nested attribute called address) use:
GET
{TenantURL}/entities?filter=exists(rdmLookups.attributes.Address.State)
To find the entities with mapping transcode errors in State attribute (part of nested attribute called address) where the value of the attribute is IL, use:
GET
{TenantURL}/entities?filter=equals(rdmLookups.attributes.Address.State,'IL')
Examples for transcode errors at entity level (for any attribute type or value )
- To search entities that have attribute values linked with RDM lookups and all of
them are transcoded without any error:
GET {TenantURL}/entities?filter=equals(rdmLookups.resolved,true)
- To search entities that have at least one attribute value with transcode error of
any attribute type that is linked with RDM lookup:
GET {TenantURL}/entities?filter=equals(rdmLookups.resolved,false)
Fix unresolved lookups in MDM
- The reindexUnresolvedRdmLookups task must update the list of problem entities. If you change MDM entities, the MDM API automatically fills all the necessary tables that includes the table including the table that keeps UnresolvedRdmLookups data.
- Reindex the MDM tenant with updateEntities = true.
POST {ApplicationURL}/reindexUnresolvedRdmLookups?tenantId={tenantId}
Body (optional):
JSON Array of entity URIs to reindex. Only these entities will be reindexed in this case.
Or
POST {ApplicationURL}/reltio/api/{tenantId}/reindexUnresolvedRdmLookups
Body (optional):
JSON Array of entity URIs to reindex. Only these entities are reindexed in this case.