keyAttributesURI options
Learn about the keyAttributes options to manage the behavior of partial overrides when you update entities.
Overview
- keyAttributeURIs: Override the specified nested attributes if all keyAttributes are the same for a crosswalk.
- keyAttributeURIsExactOrAllNull: Override the specified nested attributes if all keyAttributes are the same or missing in both nested attributes of a crosswalk.
- keyAttributeURIsExactOrNull: Override the specified nested attributes if all keyAttributes are the same or are missing in any one nested attribute of a crosswalk.
By default, the keyAttributeURIs nested attribute property is case sensitivity for attribute values, when performing matching for keyAttributes configuration. Set keyAttributeURIsIgnoreCase to true for keyAttributeURIs, keyAttributeURIsExactOrAllNull, and keyAttributeURIsExactOrNull configuration to get case insensitive matching.
- They differ only in the way they compare the values of the specified sub attributes.
- They work only when you update an entity together with using the
enableNestedPartialOverrideandpartialOverrideoptions. - They don't take into account OV logic.
- They work only at the entity type level.
- They can contain only first-level simple sub attributes of the specified nested attribute.
A validation rule has been added for the keyAttributeURIs, keyAttributeURIsExactOrAllNull, and keyAttributeURIsExactOrNull parameters. For details, see topic L3 validation errors.
{
"abstract": false,
"uri": "configuration",
...
"entityTypes": [
{
"abstract": false,
"uri": "configuration/entityTypes/Individual",
...
"attributes": [
{
"name": "Addresses",
"uri": "configuration/entityTypes/Individual/attributes/Addresses",
"type": "Nested",
...
"keyAttributeURIs": [
"configuration/entityTypes/Individual/attributes/Addresses/attributes/AddressType"
],
"keyAttributeURIsIgnoreCase": true,
"matchFieldURIs": [
"configuration/entityTypes/Individual/attributes/Addresses/attributes/AddressType"
],
"attributes": [
...
]
}
],
...
}
],
...
}
| Parameter | Default | Description |
|---|---|---|
keyAttributeURIs | absent |
Array of sub attribute URIs whose values are compared by
Exact logic:
|
keyAttributeURIsExactOrAllNull | absent |
Array of sub attribute URIs whose values are compared by
Exact or All NULL logic:
|
keyAttributeURIsExactOrNull | absent |
Array of sub attribute URIs whose values are compared by
Exact Or NULL logic:
|
keyAttributeURIsIgnoreCase | false | Will make the sub-attributes (specified in keyAttributeURIs, keyAttributeURIsExactOrAllNull, and keyAttributeURIsExactOrNull) comparison case insensitive if it's set to true. |
Example
Set enableNestedPartialOverride true in the physical configuration of the tenant.
The business configuration with entity type HCP contains the nested attribute License and the configured keyAttributeURIs and matchFieldURIs properties with the list of Number and State nested sub-attributes.
Business Configuration
{
"abstract": false,
"uri": "configuration",
...
"entityTypes": [
{
"abstract": false,
"uri": "configuration/entityTypes/HCP",
...
"attributes": [
{
"name": "Addresses",
"uri": "configuration/entityTypes/HCP/attributes/License",
"type": "Nested",
...
"keyAttributeURIs": [
"configuration/entityTypes/HCP/attributes/License/attributes/Number",
"configuration/entityTypes/HCP/attributes/License/attributes/State"
],
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/License/attributes/Number",
"configuration/entityTypes/HCP/attributes/License/attributes/State"
],
"attributes": [
...
]
}
],
...
}
],
...
}The HCP entity has two License nested attribute values, as shown in the Existing Entity example:
Existing Entity
{
"uri": "entities/00005KL",
"type": "configuration/entityTypes/HCP",
"attributes": {
"License": [
{
"label": "111, state CA",
"value": {
"Category": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Category",
"ov": true,
"value": "Category 1",
"uri": "entities/00005KL/attributes/License/0/Category/1"
}
],
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "111",
"uri": "entities/00005KL/attributes/License/0/Number/3"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "CA",
"uri": "entities/00005KL/attributes/License/0/State/2"
}
],
"Status": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Status",
"ov": true,
"value": "A",
"uri": "entities/00005KL/attributes/License/0/Status/4"
}
]
},
"ov": true,
"uri": "entities/00005KL/attributes/License/0"
},
{
"label": "222, state CA",
"value": {
"Category": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Category",
"ov": true,
"value": "Category 2",
"uri": "entities/00005KL/attributes/License/5/Category/6"
}
],
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "222",
"uri": "entities/00005KL/attributes/License/5/Number/8"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "CA",
"uri": "entities/00005KL/attributes/License/5/State/7"
}
],
"Status": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Status",
"ov": true,
"value": "A",
"uri": "entities/00005KL/attributes/License/5/Status/9"
}
]
},
"ov": true,
"uri": "entities/00005KL/attributes/License/5"
}
]
},
"crosswalks": [
{
"uri": "entities/00005KL/crosswalks/10",
"type": "configuration/sources/ABCD",
"value": "111",
"reltioLoadDate": "2019-09-24T23:19:22.559Z",
"createDate": "2019-09-24T23:19:22.559Z",
"updateDate": "2019-09-24T23:19:22.559Z",
"attributes": [
"entities/00005KL/attributes/License/0",
"entities/00005KL/attributes/License/0/Category/1",
"entities/00005KL/attributes/License/0/State/2",
"entities/00005KL/attributes/License/0/Number/3",
"entities/00005KL/attributes/License/0/Status/4",
"entities/00005KL/attributes/License/5",
"entities/00005KL/attributes/License/5/Category/6",
"entities/00005KL/attributes/License/5/State/7",
"entities/00005KL/attributes/License/5/Number/8",
"entities/00005KL/attributes/License/5/Status/9"
],
"singleAttributeUpdateDates": {}
}
],
"analyticsAttributes": {},
"label": ", ()",
"secondaryLabel": ""
}The following partial override update is posted.
Overwrite With the partialOverride Option
POST {tenantUrl}/entities?options=partialOverride
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"License": [
{
"value": {
"Category": [
{
"value": "Updated Category 1"
}
],
"State": [
{
"value": "CA"
}
],
"Number": [
{
"value": "111"
}
]
}
}
]
},
"crosswalks": [
{
"type": "ABCD",
"value": "111"
}
]
}
]Then, the resulting entity has two values for the License attribute. The value with Number=222 remains the same, and the value with Number=111 is updated (it has a new value for the Category attribute and no value for the State).
Result
{
"uri": "entities/00005KL",
"type": "configuration/entityTypes/HCP",
"createdBy": "User",
"createdTime": 1569367162559,
"updatedBy": "User",
"updatedTime": 1569367162559,
"attributes": {
"License": [
{
"label": "222, state CA",
"value": {
"Category": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Category",
"ov": true,
"value": "Category 2",
"uri": "entities/00005KL/attributes/License/5/Category/6"
}
],
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "222",
"uri": "entities/00005KL/attributes/License/5/Number/8"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "CA",
"uri": "entities/00005KL/attributes/License/5/State/7"
}
],
"Status": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Status",
"ov": true,
"value": "A",
"uri": "entities/00005KL/attributes/License/5/Status/9"
}
]
},
"ov": true,
"uri": "entities/00005KL/attributes/License/5"
},
{
"label": "111, state CA",
"value": {
"Category": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Category",
"ov": true,
"value": "Updated Category 1",
"uri": "entities/00005KL/attributes/License/0/Category/20"
}
],
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "111",
"uri": "entities/00005KL/attributes/License/0/Number/21"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "CA",
"uri": "entities/00005KL/attributes/License/0/State/22"
}
]
},
"ov": true,
"uri": "entities/00005KL/attributes/License/0"
}
]
},
"crosswalks": [
{
"uri": "entities/00005KL/crosswalks/10",
"type": "configuration/sources/ABCD",
"value": "111",
"reltioLoadDate": "2019-09-24T23:19:22.559Z",
"createDate": "2019-09-24T23:19:22.559Z",
"updateDate": "2019-09-24T23:19:22.559Z",
"attributes": [
"entities/00005KL/attributes/License/0",
"entities/00005KL/attributes/License/0/State/22",
"entities/00005KL/attributes/License/5",
"entities/00005KL/attributes/License/5/Category/6",
"entities/00005KL/attributes/License/5/State/7",
"entities/00005KL/attributes/License/5/Number/8",
"entities/00005KL/attributes/License/5/Status/9",
"entities/00005KL/attributes/License/0/Category/20",
"entities/00005KL/attributes/License/0/Number/21"
],
"singleAttributeUpdateDates": {}
}
],
"analyticsAttributes": {},
"label": ", ()",
"secondaryLabel": ""
}Lookups
resolveLookupCode property, and that value is considered as the main (lookup code or lookup value).Example
In this example, you configure your tenant to work with lookups:
Physical Configuration
"resolveLookupCode": true
Lookups
{
"STATE_LOOKUP_CD": {
"CA": {
"displayName": "California"
},
"NY": {
"displayName": "New York"
}
}
}
Meta Configuration
{
"uri": "configuration",
"referenceConfigurationURI": "configuration/_vertical/life-sciences-2019-3",
"entityTypes": [
{
"uri": "configuration/entityTypes/HCP",
"attributes": [
{
"label": "License",
"name": "License",
"type": "Nested",
"hidden": false,
"important": false,
"system": false,
"uri": "configuration/entityTypes/HCP/attributes/License",
"dataLabelPattern": "{BoardCode} {Number}, state {State}",
"keyAttributeURIs": [
"configuration/entityTypes/HCP/attributes/License/attributes/State",
"configuration/entityTypes/HCP/attributes/License/attributes/Number"
],
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/License/attributes/State",
"configuration/entityTypes/HCP/attributes/License/attributes/Number",
"configuration/entityTypes/HCP/attributes/License/attributes/Category"
],
"attributes": [
{
"name": "State",
"type": "String",
"uri": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"lookupCode": "STATE_LOOKUP_CD"
},
{
"name": "Number",
"type": "String",
"uri": "configuration/entityTypes/HCP/attributes/License/attributes/Number"
},
{
"name": "Category",
"type": "String",
"uri": "configuration/entityTypes/HCP/attributes/License/attributes/Category"
},
...
Next, create the entity with raw value CA for State (the value is equal to the lookup code).
Existing Entity
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"License": [
{
"value": {
"State": [
{
"value": "CA"
}
],
"Number": [
{
"value": "1"
}
],
"Status": [
{
"value": "A"
}
]
}
},
{
"value": {
"State": [
{
"value": "New York"
}
],
"Number": [
{
"value": "1"
}
],
"Status": [
{
"value": "B"
}
]
}
}
]
},
"crosswalks": [
{
"type": "FB",
"value": "0001"
}
]
}
]
Result
{
"uri": "entities/auebs9j",
"type": "configuration/entityTypes/HCP",
"createdBy": "test.user",
"createdTime": 1574920150822,
"updatedBy": "test.user",
"updatedTime": 1574920150822,
"attributes": {
"License": [
{
"label": "1, state New York",
"value": {
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "1",
"uri": "entities/auebs9j/attributes/License/121XUWAYd/Number/121XUWJ59"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "New York",
"lookupCode": "NY",
"lookupValue": "New York",
"uri": "entities/auebs9j/attributes/License/121XUWAYd/State/121XUWEot"
}
],
"Status": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Status",
"ov": true,
"value": "B",
"uri": "entities/auebs9j/attributes/License/121XUWAYd/Status/121XUWNLP"
}
]
},
"ov": true,
"uri": "entities/auebs9j/attributes/License/121XUWAYd"
},
{
"label": "1, state California",
"value": {
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "1",
"uri": "entities/auebs9j/attributes/License/121XUVtVb/Number/121XUW227"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "California",
"lookupCode": "CA",
"lookupValue": "California",
"uri": "entities/auebs9j/attributes/License/121XUVtVb/State/121XUVxlr"
}
],
"Status": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Status",
"ov": true,
"value": "A",
"uri": "entities/auebs9j/attributes/License/121XUVtVb/Status/121XUW6IN"
}
]
},
"ov": true,
"uri": "entities/auebs9j/attributes/License/121XUVtVb"
}
]
},
"isFavorite": false,
"crosswalks": [
{
"uri": "entities/auebs9j/crosswalks/121XUWRbf",
"type": "configuration/sources/FB",
"value": "0001",
"reltioLoadDate": "2019-11-28T05:49:10.822Z",
"createDate": "2019-11-28T05:49:10.822Z",
"updateDate": "2019-11-28T05:49:10.822Z",
"attributes": [
"entities/auebs9j/attributes/License/121XUVtVb",
"entities/auebs9j/attributes/License/121XUWAYd/Number/121XUWJ59",
"entities/auebs9j/attributes/License/121XUVtVb/State/121XUVxlr",
"entities/auebs9j/attributes/License/121XUWAYd",
"entities/auebs9j/attributes/License/121XUVtVb/Status/121XUW6IN",
"entities/auebs9j/attributes/License/121XUWAYd/State/121XUWEot",
"entities/auebs9j/attributes/License/121XUVtVb/Number/121XUW227",
"entities/auebs9j/attributes/License/121XUWAYd/Status/121XUWNLP"
],
"singleAttributeUpdateDates": {}
}
],
"analyticsAttributes": {},
"label": ", ()",
"secondaryLabel": ""
}
POST the following partial override update with the change (the value of State is equal to the lookup value California).
Overwrite With the partialOverride Option
POST {tenantUrl}/entities?options=partialOverride
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"License": [
{
"value": {
"State": [
{
"value": "California"
}
],
"Number": [
{
"value": "1"
}
],
"Status": [
{
"value": "A - Overwritten"
}
]
}
},
{
"value": {
"State": [
{
"value": "NY"
}
],
"Number": [
{
"value": "1"
}
],
"Status": [
{
"value": "B - Overwritten"
}
]
}
}
]
},
"crosswalks": [
{
"type": "FB",
"value": "0001"
}
]
}
]
Then, the resulting entity will have overwritten nested values for California, because it was resolved to the same lookup code CA. Additionally, it was overwritten because another attribute Number was also the same.
Result
{
"uri": "entities/auebs9j",
"type": "configuration/entityTypes/HCP",
"createdBy": "test.user",
"createdTime": 1574920150822,
"updatedBy": "test.user",
"updatedTime": 1574920357345,
"attributes": {
"License": [
{
"label": "1, state New York",
"value": {
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "1",
"uri": "entities/auebs9j/attributes/License/121XUWAYd/Number/121XUb3Ax"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "New York",
"lookupCode": "NY",
"lookupValue": "New York",
"uri": "entities/auebs9j/attributes/License/121XUWAYd/State/121XUb7RD"
}
],
"Status": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Status",
"ov": true,
"value": "B - Overwritten",
"uri": "entities/auebs9j/attributes/License/121XUWAYd/Status/121XUayuh"
}
]
},
"ov": true,
"uri": "entities/auebs9j/attributes/License/121XUWAYd"
},
{
"label": "1, state California",
"value": {
"Number": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Number",
"ov": true,
"value": "1",
"uri": "entities/auebs9j/attributes/License/121XUVtVb/Number/121XUaqOB"
}
],
"State": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/State",
"ov": true,
"value": "California",
"lookupCode": "CA",
"lookupValue": "California",
"uri": "entities/auebs9j/attributes/License/121XUVtVb/State/121XUaueR"
}
],
"Status": [
{
"type": "configuration/entityTypes/HCP/attributes/License/attributes/Status",
"ov": true,
"value": "A - Overwritten",
"uri": "entities/auebs9j/attributes/License/121XUVtVb/Status/121XUam7v"
}
]
},
"ov": true,
"uri": "entities/auebs9j/attributes/License/121XUVtVb"
}
]
},
"isFavorite": false,
"crosswalks": [
{
"uri": "entities/auebs9j/crosswalks/121XUWRbf",
"type": "configuration/sources/FB",
"value": "0001",
"reltioLoadDate": "2019-11-28T05:52:37.345Z",
"createDate": "2019-11-28T05:49:10.822Z",
"updateDate": "2019-11-28T05:49:10.822Z",
"attributes": [
"entities/auebs9j/attributes/License/121XUVtVb",
"entities/auebs9j/attributes/License/121XUWAYd/Status/121XUayuh",
"entities/auebs9j/attributes/License/121XUVtVb/Status/121XUam7v",
"entities/auebs9j/attributes/License/121XUWAYd",
"entities/auebs9j/attributes/License/121XUVtVb/State/121XUaueR",
"entities/auebs9j/attributes/License/121XUVtVb/Number/121XUaqOB",
"entities/auebs9j/attributes/License/121XUWAYd/Number/121XUb3Ax",
"entities/auebs9j/attributes/License/121XUWAYd/State/121XUb7RD"
],
"singleAttributeUpdateDates": {}
}
],
"analyticsAttributes": {},
"label": ", ()",
"secondaryLabel": ""
}
preserveURIs
partialOverride and preseveURIs options with keyAttributeURIs and enableNestedPartialOverride logic.Case 1
Override keyAttributesURIs Value
preserveURIs option is more robust than the keyAttributeURIs option.Configure your Meta Configuration
"keyAttributeURIsExactOrNull": [
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/Type",
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/FirstName",
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/LastName",
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/MiddleName"
],
"matchFieldURIsExactOrNull": [
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/Type",
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/FirstName",
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/LastName",
"configuration/entityTypes/Individual/attributes/AlternateName/attributes/MiddleName"
],
Create the Entity
Existing Entity
[
{
"type": "configuration/entityTypes/Individual",
"attributes": {
"FirstName": [
{
"value": "1 nested"
}
],
"AlternateName": [
{
"value": {
"Type": [
{
"value": "1"
}
],
"FirstName": [
{
"value": "A"
}
],
"LastName": [
{
"value": "B"
}
],
"MiddleName": [
{
"value": "C"
}
],
"Suffix": [
{
"value": "OLD1"
}
]
}
},
{
"value": {
"Type": [
{
"value": "2"
}
],
"FirstName": [
{
"value": "A2"
}
],
"LastName": [
{
"value": "B2"
}
],
"MiddleName": [
{
"value": "C2"
}
],
"Suffix": [
{
"value": "OLD2"
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/AHA",
"value": "1"
}
]
}
]
Result
{
"uri": "entities/eIqKm1q",
"type": "configuration/entityTypes/Individual",
"createdBy": "test.user",
"createdTime": 1576760462650,
"updatedBy": "test.user",
"updatedTime": 1576760462650,
"attributes": {
"AlternateName": [
{
"label": "A2 C2 B2",
"value": {
"LastName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/LastName",
"ov": true,
"value": "B2",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/LastName/1NwWwBSSI"
}
],
"MiddleName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/MiddleName",
"ov": true,
"value": "C2",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/MiddleName/1NwWwBWiY"
}
],
"FirstName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/FirstName",
"ov": true,
"value": "A2",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/FirstName/1NwWwBOC2"
}
],
"Suffix": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/Suffix",
"ov": true,
"value": "OLD2",
"lookupError": "Lookup isn't found",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/Suffix/1NwWwBayo"
}
],
"Type": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/Type",
"ov": true,
"value": "2",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/Type/1NwWwBJvm"
}
]
},
"ov": true,
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW"
},
{
"label": "A C B",
"value": {
"LastName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/LastName",
"ov": true,
"value": "B",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/LastName/1NwWwB2sk"
}
],
"MiddleName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/MiddleName",
"ov": true,
"value": "C",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/MiddleName/1NwWwB790"
}
],
"FirstName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/FirstName",
"ov": true,
"value": "A",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/FirstName/1NwWwAycU"
}
],
"Suffix": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/Suffix",
"ov": true,
"value": "OLD1",
"lookupError": "Lookup isn't found",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Suffix/1NwWwBBPG"
}
],
"Type": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/Type",
"ov": true,
"value": "1",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Type/1NwWwAuME"
}
]
},
"ov": true,
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y"
}
],
"FirstName": [
{
"type": "configuration/entityTypes/Individual/attributes/FirstName",
"ov": true,
"value": "1 nested",
"uri": "entities/eIqKm1q/attributes/FirstName/1NwWwAlpi"
}
]
},
"isFavorite": false,
"crosswalks": [
{
"uri": "entities/eIqKm1q/crosswalks/1NwWwBfF4",
"type": "configuration/sources/AHA",
"value": "1",
"reltioLoadDate": "2019-12-19T13:01:02.650Z",
"sourcePublishDate": "1970-01-01T00:00:00.000Z",
"createDate": "2019-12-19T13:01:02.650Z",
"updateDate": "2019-12-19T13:01:02.650Z",
"attributes": [
"entities/eIqKm1q/attributes/FirstName/1NwWwAlpi",
"entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/MiddleName/1NwWwBWiY",
"entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/Type/1NwWwBJvm",
"entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/FirstName/1NwWwBOC2",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Suffix/1NwWwBBPG",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y",
"entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW",
"entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/Suffix/1NwWwBayo",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/FirstName/1NwWwAycU",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/LastName/1NwWwB2sk",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Type/1NwWwAuME",
"entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/LastName/1NwWwBSSI",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/MiddleName/1NwWwB790"
],
"singleAttributeUpdateDates": {}
}
],
"analyticsAttributes": {},
"label": "1 nested",
"secondaryLabel": ""
}
Try to change values in the second nested value so that it will collapse with the first nested value (include the preserveURIs option and attribute/sub-attribute URIs of the second nested value).
Overwrite With the partialOverride Option
POST {tenantUrl}/entities?options=partialOverride,preserveURIs
[
{
"uri": "entities/eIqKm1q",
"type": "configuration/entityTypes/Individual",
"attributes": {
"AlternateName": [
{
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW",
"value": {
"Type": [
{
"value": "1",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/Type/1NwWwBJvm"
}
],
"LastName": [
{
"value": "B",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/LastName/1NwWwBSSI"
}
],
"MiddleName": [
{
"value": "C",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/MiddleName/1NwWwBWiY"
}
],
"FirstName": [
{
"value": "A",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/FirstName/1NwWwBOC2"
}
],
"Suffix": [
{
"value": "NEW 2",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwBFfW/Suffix/1NwWwBayo"
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/AHA",
"value": "1"
}
]
}
]
Because preserveURIs is more robust than keyAttributeURIs, as a result, the second nested value is overwritten in accordance with uris and was collapsed with the first nested value in accordance with matchFieldURIsExactOrNull.
Result of the Override
{
"uri": "entities/eIqKm1q",
"type": "configuration/entityTypes/Individual",
"createdBy": "test.user",
"createdTime": 1576760462650,
"updatedBy": "test.user",
"updatedTime": 1576760610937,
"attributes": {
"AlternateName": [
{
"label": "A C B",
"value": {
"LastName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/LastName",
"ov": true,
"value": "B",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/LastName/1NwWwB2sk"
}
],
"MiddleName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/MiddleName",
"ov": true,
"value": "C",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/MiddleName/1NwWwB790"
}
],
"FirstName": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/FirstName",
"ov": true,
"value": "A",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/FirstName/1NwWwAycU"
}
],
"Suffix": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/Suffix",
"ov": true,
"value": "NEW 2",
"lookupError": "Lookup isn't found",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Suffix/1NwWwBayo"
},
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/Suffix",
"ov": true,
"value": "OLD1",
"lookupError": "Lookup isn't found",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Suffix/1NwWwBBPG"
}
],
"Type": [
{
"type": "configuration/entityTypes/Individual/attributes/AlternateName/attributes/Type",
"ov": true,
"value": "1",
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Type/1NwWwAuME"
}
]
},
"ov": true,
"uri": "entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y"
}
],
"FirstName": [
{
"type": "configuration/entityTypes/Individual/attributes/FirstName",
"ov": true,
"value": "1 nested",
"uri": "entities/eIqKm1q/attributes/FirstName/1NwWwAlpi"
}
]
},
"isFavorite": false,
"crosswalks": [
{
"uri": "entities/eIqKm1q/crosswalks/1NwWwBfF4",
"type": "configuration/sources/AHA",
"value": "1",
"reltioLoadDate": "2019-12-19T13:03:30.937Z",
"sourcePublishDate": "1970-01-01T00:00:00.000Z",
"createDate": "2019-12-19T13:01:02.650Z",
"updateDate": "2019-12-19T13:01:02.650Z",
"attributes": [
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y",
"entities/eIqKm1q/attributes/FirstName/1NwWwAlpi",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Suffix/1NwWwBayo",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/FirstName/1NwWwAycU",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/LastName/1NwWwB2sk",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Type/1NwWwAuME",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/MiddleName/1NwWwB790",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Suffix/1NwWwBBPG"
],
"singleAttributeUpdateDates": {
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y": "2019-12-19T13:03:30.937Z",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Suffix/1NwWwBayo": "2019-12-19T13:03:30.937Z",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/FirstName/1NwWwAycU": "2019-12-19T13:03:30.937Z",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/LastName/1NwWwB2sk": "2019-12-19T13:03:30.937Z",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/Type/1NwWwAuME": "2019-12-19T13:03:30.937Z",
"entities/eIqKm1q/attributes/AlternateName/1NwWwAq5y/MiddleName/1NwWwB790": "2019-12-19T13:03:30.937Z"
}
}
],
"analyticsAttributes": {},
"label": "1 nested",
"secondaryLabel": ""
}