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
enableNestedPartialOverride
andpartialOverride
options. - 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": ""
}