What are the best practices for creating and updating entities?

 

Reltio API provides a single endpoint for creating and updating entities (see Create Entitiesfor more details):

 POST {TenantURL}/entities

Reltio recommends using this endpoint for all create and update operations. When sending an entity JSON by using this endpoint the following may happen: 

Match by crosswalk is found.

  • There is an existing entity which has one or more crosswalk which is equal to the crosswalk(s) of the incoming entity.
  • Incoming crosswalk by which the match was found is data provider crosswalk (dataProvider property of crosswalk is 'true' or absent). In this case, an existing entity will be updated. All attributes related to the matched crosswalk of the existing entity will be replaced (overwritten) by attributes of the incoming entity.

 Reltio uses the following algorithm:

  •  The API takes a part (slice) of the matched entity based on the crosswalk (taking only those values that came from the specified crosswalk). The API then completely overwrites all attributes of this slice by the content of new entity. 
  • A special case is Reference attributes. Reference attributes have no direct association to an entity’s crosswalk, as it is just a reference to another entity. Overwriting of reference attributes means overwriting of referenced entity and relation. A relation may contain information with the crosswalk of the entity from which it originated (startObjectCrosswalks andendObjectCrosswalks). 

 

  • In the case when this information exists, the API will overwrite only reference attributes related to data provider crosswalks specified in the request. In the case when a relations has several crosswalks, only the part of the relations related to the same contributor as crosswalks from the request, will be overwritten.

 

  • If there is no information about entity crosswalks in a relation (startObjectCrosswalks/endObjectCrosswalks are empty), only the part of relation related to crosswalks from the same contributor and with the same type as data provider crosswalks specified in the request, will be overwritten.

 

NOTE: Reltio API provides an option to avoid overwriting of reference attributes with relations having crosswalks of specific types: doNotOverrideForSourceURIs. This option can be defined in the reference attribute configuration. If it is present, then the relation crosswalks with specified sources will not be overwritten.

Incoming crosswalk by which the match was found is not the data provider crosswalk (dataProvider property of crosswalk is 'false'). 

A merge on-the-fly by the crosswalk will occur in this case. All new crosswalks (which do not exist in the matched entity) of the incoming entity along with its attributes will be added to the existing entity. All newly added crosswalks will be assigned to a new contributor by default, this behaviour can be changed, see Association of a crosswalk with a proper contributor KB# 585.

 If an incoming entity has reference attributes pointing to the same referenced entities as existing reference attribute, then the new relations (representing new reference attributes) are merged on-the-fly with existing relations for existing reference attributes. 

Note: If there are several data provider crosswalks, including relation crosswalks ("refRelation" section of reference attributes), that already exist in the existing entity, they all should be related to the same contributor. Otherwise, an error will be returned.

Match by automatic match rule is found:

  • There is an existing entity that matches the incoming entity by the one or more automatic rule. 
  • Merge on-the-fly by automatic match rule will occur in this case. All crosswalks of incoming entity with their attributes will be added to the existing entity and assigned to a new contributor.

 No matches found

  • In this case a new entity will be created. All attributes will be associated with data provider crosswalks only. 
  • It is possible that more than one match will be found (by crosswalk or by automatic match rule) for an incoming entity. All found matches will be merged in this case and then incoming entity will be updated or merged as the result of the merge.

 Note: Two crosswalks are equals then and only then when they have the same source type, value and sourceTable (or sourceTable is absent for both crosswalks).

Create an entity with two crosswalks

First request:

POST{tenantUrl}/entities

 

[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"FirstName": [
{
"value": "FirstNameCommon"
}
],
"LastName": [
{
"value": "LastName1"
}
],
"Identifiers": [
{
"value": {
"Type": [
{
"value": "Type1"
}
],
"ID": [
{
"value": "id1"
}
]
}
}
],
"Address": [
{
"value": {
"AddressLine1": [
{
"value": "Address1"
}
],
"AddressRank": [
{
"value": "1"
}
]
},
"refEntity": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "loc1"
}
]
},
"refRelation": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "rel1.1"
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "entity1"
}
]
}
]

Second request:

POST{    tenantUrl}/entities

 

[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"FirstName": [
{
"value": "FirstNameCommon"
}
],
"LastName": [
{
"value": "LastName2"
}
],
"Identifiers": [
{
"value": {
"Type": [
{
"value": "Type2"
}
],
"ID": [
{
"value": "id1"
}
]
}
}
],
"Address": [
{
"value": {
"AddressLine1": [
{
"value": "Address1"
}
],
"AddressRank": [
{
"value": "2"
}
]
},
"refEntity": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "loc1"
}
]
},
"refRelation": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "rel1.2"
}
]
}
},
{
"value": {
"AddressLine1": [
{
"value": "Address2"
}
],
"AddressRank": [
{
"value": "3"
}
]
},
"refEntity": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "loc2"
}
]
},
"refRelation": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "rel2"
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "entity1",
"dataProvider": false
},
{
"type": "configuration/sources/FB",
"value": "entity1.2"
}
]
}
]

Note: You can also use a single request by putting both parts of the entities into one array.

You get the entity with two crosswalks as a result. There is a single value of FirstName attribute related to both crosswalks. LastName attribute has two values: one is related to the first crosswalk, another to the second. There is the reference attribute "Address" with two values: the first one value is related to both crosswalks of entity (startObjectCrosswalks contains both entity crosswalks), the second one is related to the second entity crosswalk only (startObjectCrosswalks contains only the second entity crosswalk).

{
"URI": "entities/00007Mq",
"type": "configuration/entityTypes/HCP",
"createdBy": "ivan",
"createdTime": 1459507479610,
"updatedBy": "ivan",
"updatedTime": 1459507522284,
"attributes": {
"FirstName": [
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": true,
"value": "FirstNameCommon",
"URI": "entities/00007Mq/attributes/FirstName/1mxjOK"
}
],
"LastName": [
{
"type": "configuration/entityTypes/HCP/attributes/LastName",
"ov": true,
"value": "LastName2",
"URI": "entities/00007Mq/attributes/LastName/1n04J6"
},
{
"type": "configuration/entityTypes/HCP/attributes/LastName",
"ov": false,
"value": "LastName1",
"URI": "entities/00007Mq/attributes/LastName/1mxruq"
}
],
"Identifiers": [
{
"label": "Type1 id1",
"value": {
"Type": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
"ov": true,
"value": "Type1",
"URI": "entities/00007Mq/attributes/Identifiers/1msiFU/Type/1msmVk"
}
],
"ID": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/ID",
"ov": true,
"value": "id1",
"URI": "entities/00007Mq/attributes/Identifiers/1msiFU/ID/1msqm0"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Identifiers/1msiFU"
},
{
"label": "Type2 id1",
"value": {
"Type": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
"ov": true,
"value": "Type2",
"URI": "entities/00007Mq/attributes/Identifiers/1mw568/Type/1mw9MO"
}
],
"ID": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/ID",
"ov": true,
"value": "id1",
"URI": "entities/00007Mq/attributes/Identifiers/1mw568/ID/1mwDce"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Identifiers/1mw568"
}
],
"Address": [
{
"label": "Address1",
"relationshipLabel": ", 2",
"value": {
"AddressRank": [
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": true,
"value": "2",
"URI": "entities/00007Mq/attributes/Address/0000BhA/AddressRank/1mwQPQ"
},
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": false,
"value": "1",
"URI": "entities/00007Mq/attributes/Address/0000BhA/AddressRank/1mtbeq"
}
],
"AddressLine1": [
{
"type": "configuration/entityTypes/Location/attributes/AddressLine1",
"ov": true,
"value": "Address1",
"URI": "entities/00007Mq/attributes/Address/0000BhA/AddressLine1/1mtT8K"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Address/0000BhA",
"refEntity": {
"type": "configuration/entityTypes/Location",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000Ad6.1mszIW",
"type": "configuration/sources/FB",
"value": "loc1",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000BhA",
"entities/00007Mq/attributes/Address/0000BhA/AddressLine1/1mtT8K"
],
"crosswalkExternalInfo": {}
}
],
"objectURI": "entities/0000Ad6"
},
"refRelation": {
"type": "configuration/relationTypes/HasAddress",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000BhA.1mu9ku",
"type": "configuration/sources/FB",
"value": "rel1.2",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000BhA/AddressRank/1mwQPQ",
"entities/00007Mq/attributes/Address/0000BhA"
],
"crosswalkExternalInfo": {}
},
{
"URI": "entities/00007Mq/crosswalks/0000BhA.1mt3Ym",
"type": "configuration/sources/FB",
"value": "rel1.1",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000BhA",
"entities/00007Mq/attributes/Address/0000BhA/AddressRank/1mtbeq"
],
"crosswalkExternalInfo": {}
}
],
"startRefPinned": false,
"endRefPinned": false,
"startRefIgnored": false,
"endRefIgnored": false,
"objectURI": "relations/0000BhA"
},
"startObjectCrosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1mtKbo",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T15:45:22.284+05:00",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1msiFU",
"entities/00007Mq/attributes/LastName/1mxruq",
"entities/00007Mq/attributes/Identifiers/1msiFU/Type/1msmVk",
"entities/00007Mq/attributes/Identifiers/1msiFU/ID/1msqm0",
"entities/00007Mq/attributes/FirstName/1mxjOK"
],
"singleAttributeUpdateDates": {}
},
{
"URI": "entities/00007Mq/crosswalks/1muudk",
"type": "configuration/sources/FB",
"value": "entity1.2",
"reltioLoadDate": "2016-04-01T15:45:22.284+05:00",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1mw568/Type/1mw9MO",
"entities/00007Mq/attributes/Identifiers/1mw568",
"entities/00007Mq/attributes/FirstName/1mxjOK",
"entities/00007Mq/attributes/LastName/1n04J6",
"entities/00007Mq/attributes/Identifiers/1mw568/ID/1mwDce"
],
"singleAttributeUpdateDates": {}
}
]
},
{
"label": "Address2",
"relationshipLabel": ", 3",
"value": {
"AddressRank": [
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": true,
"value": "3",
"URI": "entities/00007Mq/attributes/Address/0000SkC/AddressRank/1mvSjo"
}
],
"AddressLine1": [
{
"type": "configuration/entityTypes/Location/attributes/AddressLine1",
"ov": true,
"value": "Address2",
"URI": "entities/00007Mq/attributes/Address/0000SkC/AddressLine1/1mvKDI"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Address/0000SkC",
"refEntity": {
"type": "configuration/entityTypes/Location",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000NPs.1muV4C",
"type": "configuration/sources/FB",
"value": "loc2",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000SkC/AddressLine1/1mvKDI",
"entities/00007Mq/attributes/Address/0000SkC"
],
"crosswalkExternalInfo": {}
}
],
"objectURI": "entities/0000NPs"
},
"refRelation": {
"type": "configuration/relationTypes/HasAddress",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000SkC.1muZKS",
"type": "configuration/sources/FB",
"value": "rel2",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000SkC",
"entities/00007Mq/attributes/Address/0000SkC/AddressRank/1mvSjo"
],
"crosswalkExternalInfo": {}
}
],
"startRefPinned": false,
"endRefPinned": false,
"startRefIgnored": false,
"endRefIgnored": false,
"objectURI": "relations/0000SkC"
},
"startObjectCrosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1muudk",
"type": "configuration/sources/FB",
"value": "entity1.2",
"reltioLoadDate": "2016-04-01T15:45:22.284+05:00",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1mw568/Type/1mw9MO",
"entities/00007Mq/attributes/Identifiers/1mw568",
"entities/00007Mq/attributes/FirstName/1mxjOK",
"entities/00007Mq/attributes/LastName/1n04J6",
"entities/00007Mq/attributes/Identifiers/1mw568/ID/1mwDce"
],
"singleAttributeUpdateDates": {}
}
]
}
]
},
"isFavorite": false,
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1mtKbo",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T15:45:22.284+05:00",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1msiFU",
"entities/00007Mq/attributes/LastName/1mxruq",
"entities/00007Mq/attributes/Identifiers/1msiFU/Type/1msmVk",
"entities/00007Mq/attributes/Identifiers/1msiFU/ID/1msqm0",
"entities/00007Mq/attributes/FirstName/1mxjOK"
],
"singleAttributeUpdateDates": {}
},
{
"URI": "entities/00007Mq/crosswalks/1muudk",
"type": "configuration/sources/FB",
"value": "entity1.2",
"reltioLoadDate": "2016-04-01T15:45:22.284+05:00",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1mw568/Type/1mw9MO",
"entities/00007Mq/attributes/Identifiers/1mw568",
"entities/00007Mq/attributes/FirstName/1mxjOK",
"entities/00007Mq/attributes/LastName/1n04J6",
"entities/00007Mq/attributes/Identifiers/1mw568/ID/1mwDce"
],
"singleAttributeUpdateDates": {}
}
],
"label": "FirstNameCommon LastName2",
"secondaryLabel": "Address1"
}

Update attributes for one of the crosswalks of the entity

Update attributes for second crosswalks

 POST {TenantURL}/entities
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"LastName": [
{
"value": "LastName2New"
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "entity1.2"
}
]
}
]

FirstName attribute is still present, but now its value is related to the first crosswalk only. The value of the LastName attribute related to the second crosswalk was updated, while the other value remains the same because it is from another crosswalk. The address attribute has only one value now, the second value was deleted because it was specified in the last request. Note that the first value of Address is related to the first crosswalk only and the relations has only one crosswalk now. The second relation crosswalk was removed as it was related to the second entity crosswalk.

Results:

{
"URI": "entities/00007Mq",
"type": "configuration/entityTypes/HCP",
"createdBy": "ivan",
"createdTime": 1459507479610,
"updatedBy": "ivan",
"updatedTime": 1459508300253,
"attributes": {
"FirstName": [
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": true,
"value": "FirstNameCommon",
"URI": "entities/00007Mq/attributes/FirstName/1mxjOK"
}
],
"LastName": [
{
"type": "configuration/entityTypes/HCP/attributes/LastName",
"ov": true,
"value": "LastName2New",
"URI": "entities/00007Mq/attributes/LastName/1n0LM8"
},
{
"type": "configuration/entityTypes/HCP/attributes/LastName",
"ov": false,
"value": "LastName1",
"URI": "entities/00007Mq/attributes/LastName/1mxruq"
}
],
"Identifiers": [
{
"label": "Type1 id1",
"value": {
"Type": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
"ov": true,
"value": "Type1",
"URI": "entities/00007Mq/attributes/Identifiers/1msiFU/Type/1msmVk"
}
],
"ID": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/ID",
"ov": true,
"value": "id1",
"URI": "entities/00007Mq/attributes/Identifiers/1msiFU/ID/1msqm0"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Identifiers/1msiFU"
}
],
"Address": [
{
"label": "Address1",
"relationshipLabel": ", 1",
"value": {
"AddressRank": [
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": true,
"value": "1",
"URI": "entities/00007Mq/attributes/Address/0000BhA/AddressRank/1mtbeq"
}
],
"AddressLine1": [
{
"type": "configuration/entityTypes/Location/attributes/AddressLine1",
"ov": true,
"value": "Address1",
"URI": "entities/00007Mq/attributes/Address/0000BhA/AddressLine1/1mtT8K"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Address/0000BhA",
"refEntity": {
"type": "configuration/entityTypes/Location",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000Ad6.1mszIW",
"type": "configuration/sources/FB",
"value": "loc1",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000BhA",
"entities/00007Mq/attributes/Address/0000BhA/AddressLine1/1mtT8K"
],
"crosswalkExternalInfo": {}
}
],
"objectURI": "entities/0000Ad6"
},
"refRelation": {
"type": "configuration/relationTypes/HasAddress",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000BhA.1mt3Ym",
"type": "configuration/sources/FB",
"value": "rel1.1",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000BhA",
"entities/00007Mq/attributes/Address/0000BhA/AddressRank/1mtbeq"
],
"crosswalkExternalInfo": {}
}
],
"startRefPinned": false,
"endRefPinned": false,
"startRefIgnored": false,
"endRefIgnored": false,
"objectURI": "relations/0000BhA"
},
"startObjectCrosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1mtKbo",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T15:45:22.284+05:00",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1msiFU",
"entities/00007Mq/attributes/LastName/1mxruq",
"entities/00007Mq/attributes/Identifiers/1msiFU/Type/1msmVk",
"entities/00007Mq/attributes/Identifiers/1msiFU/ID/1msqm0",
"entities/00007Mq/attributes/FirstName/1mxjOK"
],
"singleAttributeUpdateDates": {}
}
]
}
]
},
"isFavorite": false,
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1mtKbo",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T15:45:22.284+05:00",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1msiFU",
"entities/00007Mq/attributes/LastName/1mxruq",
"entities/00007Mq/attributes/Identifiers/1msiFU/Type/1msmVk",
"entities/00007Mq/attributes/Identifiers/1msiFU/ID/1msqm0",
"entities/00007Mq/attributes/FirstName/1mxjOK"
],
"singleAttributeUpdateDates": {}
},
{
"URI": "entities/00007Mq/crosswalks/1muudk",
"type": "configuration/sources/FB",
"value": "entity1.2",
"reltioLoadDate": "2016-04-01T15:58:20.253+05:00",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributes": [
"entities/00007Mq/attributes/LastName/1n0LM8"
],
"singleAttributeUpdateDates": {}
}
],
"label": "FirstNameCommon LastName2New",
"secondaryLabel": "Address1"
}

 

Update attributes for one crosswalks of an entity

Update attributes for the first crosswalk

POST {TenantURL}/entities
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"FirstName": [
{
"value": "FirstName2New"
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "entity1"
}
]
}
]

The FirstName attribute has two values now: one is a new value for the first crosswalk (we sent this value in the last request), another "old" value now related to the second crosswalk (it was not deleted because it still has a crosswalk to which it is related). Address still has two values, but now both the values are related to the second entity crosswalk. Note that the first crosswalk of the relation was deleted because it came with the first entity crosswalk and we did not send the "Address" attribute in the last request, so the relation was overwritten.

Results:

 

{
"URI": "entities/00007Mq",
"type": "configuration/entityTypes/HCP",
"createdBy": "ivan",
"createdTime": 1459507479610,
"updatedBy": "ivan",
"updatedTime": 1459508907740,
"attributes": {
"FirstName": [
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": true,
"value": "FirstNameCommon",
"URI": "entities/00007Mq/attributes/FirstName/1mxjOK"
},
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": false,
"value": "FirstName2New",
"URI": "entities/00007Mq/attributes/FirstName/1n4bc8"
}
],
"LastName": [
{
"type": "configuration/entityTypes/HCP/attributes/LastName",
"ov": true,
"value": "LastName2",
"URI": "entities/00007Mq/attributes/LastName/1n3dwW"
}
],
"Identifiers": [
{
"label": "Type2 id1",
"value": {
"Type": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
"ov": true,
"value": "Type2",
"URI": "entities/00007Mq/attributes/Identifiers/1n3zFo/Type/1n43W4"
}
],
"ID": [
{
"type": "configuration/entityTypes/HCP/attributes/Identifiers/attributes/ID",
"ov": true,
"value": "id1",
"URI": "entities/00007Mq/attributes/Identifiers/1n3zFo/ID/1n47mK"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Identifiers/1n3zFo"
}
],
"Address": [
{
"label": "Address1",
"relationshipLabel": ", 2",
"value": {
"AddressRank": [
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": true,
"value": "2",
"URI": "entities/00007Mq/attributes/Address/0000BhA/AddressRank/1n4KZ6"
}
],
"AddressLine1": [
{
"type": "configuration/entityTypes/Location/attributes/AddressLine1",
"ov": true,
"value": "Address1",
"URI": "entities/00007Mq/attributes/Address/0000BhA/AddressLine1/1mtT8K"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Address/0000BhA",
"refEntity": {
"type": "configuration/entityTypes/Location",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000Ad6.1mszIW",
"type": "configuration/sources/FB",
"value": "loc1",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000BhA",
"entities/00007Mq/attributes/Address/0000BhA/AddressLine1/1mtT8K"
],
"crosswalkExternalInfo": {}
}
],
"objectURI": "entities/0000Ad6"
},
"refRelation": {
"type": "configuration/relationTypes/HasAddress",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000BhA.1n23ua",
"type": "configuration/sources/FB",
"value": "rel1.2",
"createDate": "2016-04-01T16:07:52.742+05:00",
"updateDate": "2016-04-01T16:07:52.742+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0000BhA/AddressRank/1n4KZ6",
"entities/00007Mq/attributes/Address/0000BhA"
],
"crosswalkExternalInfo": {}
}
],
"startRefPinned": false,
"endRefPinned": false,
"startRefIgnored": false,
"endRefIgnored": false,
"objectURI": "relations/0000BhA"
},
"startObjectCrosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1muudk",
"type": "configuration/sources/FB",
"value": "entity1.2",
"reltioLoadDate": "2016-04-01T16:07:52.742+05:00",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1n3zFo",
"entities/00007Mq/attributes/LastName/1n3dwW",
"entities/00007Mq/attributes/Identifiers/1n3zFo/Type/1n43W4",
"entities/00007Mq/attributes/Identifiers/1n3zFo/ID/1n47mK",
"entities/00007Mq/attributes/FirstName/1mxjOK"
],
"singleAttributeUpdateDates": {}
}
]
},
{
"label": "Address2",
"relationshipLabel": ", 3",
"value": {
"AddressRank": [
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": true,
"value": "3",
"URI": "entities/00007Mq/attributes/Address/0001HtI/AddressRank/1n3MtU"
}
],
"AddressLine1": [
{
"type": "configuration/entityTypes/Location/attributes/AddressLine1",
"ov": true,
"value": "Address2",
"URI": "entities/00007Mq/attributes/Address/0001HtI/AddressLine1/1mvKDI"
}
]
},
"ov": true,
"URI": "entities/00007Mq/attributes/Address/0001HtI",
"refEntity": {
"type": "configuration/entityTypes/Location",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0000NPs.1muV4C",
"type": "configuration/sources/FB",
"value": "loc2",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0001HtI/AddressLine1/1mvKDI",
"entities/00007Mq/attributes/Address/0001HtI"
],
"crosswalkExternalInfo": {}
}
],
"objectURI": "entities/0000NPs"
},
"refRelation": {
"type": "configuration/relationTypes/HasAddress",
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/0001HtI.1n2TU8",
"type": "configuration/sources/FB",
"value": "rel2",
"createDate": "2016-04-01T16:07:52.742+05:00",
"updateDate": "2016-04-01T16:07:52.742+05:00",
"attributeURIs": [
"entities/00007Mq/attributes/Address/0001HtI",
"entities/00007Mq/attributes/Address/0001HtI/AddressRank/1n3MtU"
],
"crosswalkExternalInfo": {}
}
],
"startRefPinned": false,
"endRefPinned": false,
"startRefIgnored": false,
"endRefIgnored": false,
"objectURI": "relations/0001HtI"
},
"startObjectCrosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1muudk",
"type": "configuration/sources/FB",
"value": "entity1.2",
"reltioLoadDate": "2016-04-01T16:07:52.742+05:00",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1n3zFo",
"entities/00007Mq/attributes/LastName/1n3dwW",
"entities/00007Mq/attributes/Identifiers/1n3zFo/Type/1n43W4",
"entities/00007Mq/attributes/Identifiers/1n3zFo/ID/1n47mK",
"entities/00007Mq/attributes/FirstName/1mxjOK"
],
"singleAttributeUpdateDates": {}
}
]
}
]
},
"isFavorite": false,
"crosswalks": [
{
"URI": "entities/00007Mq/crosswalks/1mtKbo",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T16:08:27.740+05:00",
"createDate": "2016-04-01T15:44:39.610+05:00",
"updateDate": "2016-04-01T15:44:39.610+05:00",
"attributes": [
"entities/00007Mq/attributes/FirstName/1n4bc8"
],
"singleAttributeUpdateDates": {}
},
{
"URI": "entities/00007Mq/crosswalks/1muudk",
"type": "configuration/sources/FB",
"value": "entity1.2",
"reltioLoadDate": "2016-04-01T16:07:52.742+05:00",
"createDate": "2016-04-01T15:44:45.655+05:00",
"updateDate": "2016-04-01T15:44:45.655+05:00",
"attributes": [
"entities/00007Mq/attributes/Identifiers/1n3zFo",
"entities/00007Mq/attributes/LastName/1n3dwW",
"entities/00007Mq/attributes/Identifiers/1n3zFo/Type/1n43W4",
"entities/00007Mq/attributes/Identifiers/1n3zFo/ID/1n47mK",
"entities/00007Mq/attributes/FirstName/1mxjOK"
],
"singleAttributeUpdateDates": {}
}
],
"label": "FirstNameCommon LastName2",
"secondaryLabel": "Address1"
}

Create and update relations

The Reltio API provides a single endpoint for relations.

 

POST {TenantURL}/relations

This endpoint works similar to the corresponding endpoint for entities, but with the following differences:

  •  there are no match rules for relations
  • relations also may be matched by start and end objects

When sending a relation JSON object by using this endpoint, the following may happen:

  •  Match by crosswalk is found: there is an existing relations which has one or more crosswalk which equals to crosswalk(s) of incoming relation.
  • The process is the same as for entities: a new relation will be merged on-the-fly with the existing relation or the existing relation will be updated.

 Note: The incoming and the existing relations must point to the same objects. If incoming relation points to different start or/and end object, then an error will be returned.

  • Match by referenced objects is found: an existing relation points to the same objects as incoming relation.
  • A new relations will be merged on-the-fly with the existing relation.

No matches found.

A new relations will be created. All attributes will be associated with the data provider crosswalks only.

 There are two ways to specify start and end objects when creating or updating relations:

By entity crosswalks.

"startObject":{ 
"crosswalks":[
{
"type":"configuration/sources/FB",
"value":"entity333"
}
]
},
"endObject":{
"crosswalks":[
{
"type":"configuration/sources/FB",
"value":"loc2"
}
]
}...
By entity URIs.
...

"startObject":{
"objectURI":"entities/0000NPs"
},
"endObject":{
"objectURI":"entities/0000EtM"
}...

Note: Reltio recommends that you specify start and end objects for relations by using entities crosswalks. Information about associations with entities crosswalks will be stored in the relation.

Create relations

POST {TenantURL}/entities
  
{
"type":"configuration/relationTypes/HasAddress",
"attributes":{
"AddressRank":[
{
"value":"333"
}
]
},
"crosswalks":[
{
"type":"configuration/sources/FB",
"value":"rel3.1"
}
],
"startObject":{
"crosswalks":[
{
"type":"configuration/sources/FB",
"value":"entity333"
}
]
},
"endObject":{
"crosswalks":[
{
"type":"configuration/sources/FB",
"value":"loc2"
}
]
}
}
]

Result:

{ 
"URI":"relations/0000bGi",
"type":"configuration/relationTypes/HasAddress",
"createdBy":"ivan",
"createdTime":1459627232542,
"updatedBy":"ivan",
"updatedTime":1459627232542,
"attributes":{
"AddressRank":[
{
"type":"configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov":true,
"value":"333",
"URI":"relations/0000bGi/attributes/AddressRank/1mwM9A"
}
]
},
"crosswalks":[
{
"URI":"relations/0000bGi/crosswalks/1mwQPQ",
"type":"configuration/sources/FB",
"value":"rel3.1",
"reltioLoadDate":"2016-04-03T01:00:32.542+05:00",
"createDate":"2016-04-03T01:00:32.542+05:00",
"updateDate":"2016-04-03T01:00:32.542+05:00",
"attributes":[
"relations/0000bGi/attributes/AddressRank/1mwM9A"
],
"singleAttributeUpdateDates":{

}
}
],
"startObject":{
"type":"configuration/entityTypes/HCP",
"objectURI":"entities/0000NPs",
"label":"Value2 LastName1",
"directionalLabel":"has address",
"crosswalks":[
{
"URI":"entities/0000NPs/crosswalks/1mvsJM",
"type":"configuration/sources/FB",
"value":"entity333",
"reltioLoadDate":"2016-04-03T01:00:42.770+05:00",
"createDate":"2016-04-03T01:00:42.770+05:00",
"updateDate":"2016-04-03T01:00:42.770+05:00"
}
]
},
"endObject":{
"type":"configuration/entityTypes/Location",
"objectURI":"entities/0000J9c",
"label":"Address2",
"directionalLabel":"locates",
"crosswalks":[
{
"URI":"entities/0000J9c/crosswalks/1mtkBM",
"type":"configuration/sources/FB",
"value":"loc2",
"reltioLoadDate":"2016-04-03T01:00:42.770+05:00",
"createDate":"2016-04-03T01:00:42.770+05:00",
"updateDate":"2016-04-03T01:00:42.770+05:00"
}
]
}
}

Relation from the previous example

POST {TenantURL}/entities

[
{
"type": "configuration/relationTypes/HasAddress",
"attributes": {
"AddressRank": [
{
"value": "999"
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "rel3.2"
}
],
"startObject": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "entity333"
}
]
},
"endObject": {
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "loc2"
}
]
}
}
]

The relation specified in the request JSON was merged on-the-fly with the existing relations from the previous example because they point to the same start and end entities. As a result, a new attribute with the new crosswalk was added to the existing relation.

Results:

{
"URI": "relations/0000bGi",
"type": "configuration/relationTypes/HasAddress",
"createdBy": "ivan",
"createdTime": 1459627232542,
"updatedBy": "ivan",
"updatedTime": 1459627429788,
"attributes": {
"AddressRank": [
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": true,
"value": "999",
"URI": "relations/0000bGi/attributes/AddressRank/1mx2lk"
},
{
"type": "configuration/relationTypes/HasAddress/attributes/AddressRank",
"ov": false,
"value": "3331",
"URI": "relations/0000bGi/attributes/AddressRank/1mwhSS"
}
]
},
"crosswalks": [
{
"URI": "relations/0000bGi/crosswalks/1mwpyy",
"type": "configuration/sources/FB",
"value": "rel3.2",
"reltioLoadDate": "2016-04-03T01:03:49.788+05:00",
"createDate": "2016-04-03T01:03:49.788+05:00",
"updateDate": "2016-04-03T01:03:49.788+05:00",
"attributes": [
"relations/0000bGi/attributes/AddressRank/1mx2lk"
],
"singleAttributeUpdateDates": {}
},
{
"URI": "relations/0000bGi/crosswalks/1mwQPQ",
"type": "configuration/sources/FB",
"value": "rel3.1",
"reltioLoadDate": "2016-04-03T01:01:48.294+05:00",
"createDate": "2016-04-03T01:00:32.542+05:00",
"updateDate": "2016-04-03T01:00:32.542+05:00",
"attributes": [
"relations/0000bGi/attributes/AddressRank/1mwhSS"
],
"singleAttributeUpdateDates": {}
}
],
"startObject": {
"type": "configuration/entityTypes/HCP",
"objectURI": "entities/0000NPs",
"label": "Value2 LastName1",
"directionalLabel": "has address",
"crosswalks": [
{
"URI": "entities/0000NPs/crosswalks/1mvsJM",
"type": "configuration/sources/FB",
"value": "entity333",
"reltioLoadDate": "2016-04-03T01:03:54.738+05:00",
"createDate": "2016-04-03T01:03:54.738+05:00",
"updateDate": "2016-04-03T01:03:54.738+05:00"
}
]
},
"endObject": {
"type": "configuration/entityTypes/Location",
"objectURI": "entities/0000J9c",
"label": "Address2",
"directionalLabel": "locates",
"crosswalks": [
{
"URI": "entities/0000J9c/crosswalks/1mtkBM",
"type": "configuration/sources/FB",
"value": "loc2",
"reltioLoadDate": "2016-04-03T01:03:54.738+05:00",
"createDate": "2016-04-03T01:03:54.738+05:00",
"updateDate": "2016-04-03T01:03:54.738+05:00"
}
]
}
}

Overwrite Options

The "partialOverride" option works only when updating an entity. If this option is present, only attributes that are provided in a request will be overwritten. This option is helpful if you need to update only part of entity's attributes.

Existing entity

{ 
"URI":"entities/0001L5U",
"type":"configuration/entityTypes/HCP",
"createdBy":"ivan",
"createdTime":1459517575267,
"updatedBy":"ivan",
"updatedTime":1459517575267,
"attributes":{
"FirstName":[
{
"type":"configuration/entityTypes/HCP/attributes/FirstName",
"ov":true,
"value":"Value2",
"URI":"entities/0001L5U/attributes/FirstName/1n5QlE"
},
{
"type":"configuration/entityTypes/HCP/attributes/FirstName",
"ov":true,
"value":"Value1",
"URI":"entities/0001L5U/attributes/FirstName/1n5MUy"
}
],
"LastName":[
{
"type":"configuration/entityTypes/HCP/attributes/LastName",
"ov":true,
"value":"LastName1",
"URI":"entities/0001L5U/attributes/LastName/1n5V1U"
}
]
},
"isFavorite":false,
"crosswalks":[
{
"URI":"entities/0001L5U/crosswalks/1n5ZHk",
"type":"configuration/sources/FB",
"value":"entity1",
"reltioLoadDate":"2016-04-01T18:32:55.267+05:00",
"createDate":"2016-04-01T18:32:55.267+05:00",
"updateDate":"2016-04-01T18:32:55.267+05:00",
"attributes":[
"entities/0001L5U/attributes/FirstName/1n5QlE",
"entities/0001L5U/attributes/LastName/1n5V1U",
"entities/0001L5U/attributes/FirstName/1n5MUy"
],
"singleAttributeUpdateDates":{

}
}
],
"label":"Value2 LastName1",
"secondaryLabel":""
}

Overwrite without partialOverride option

[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"FirstName": [
{
"value": "Value1New"
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "entity1"
}
]
}
]

The resulting entity now has only one attribute: FirstName and with one value: LastName was deleted during the overwrite because it was not present in the request JSON object.

{
"URI": "entities/0001L5U",
"type": "configuration/entityTypes/HCP",
"createdBy": "ivan",
"createdTime": 1459517575267,
"updatedBy": "ivan",
"updatedTime": 1459517689925,
"attributes": {
"FirstName": [
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": true,
"value": "Value1New",
"URI": "entities/0001L5U/attributes/FirstName/1n5qKm"
}
]
},
"isFavorite": false,
"crosswalks": [
{
"URI": "entities/0001L5U/crosswalks/1n5ZHk",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T18:34:49.925+05:00",
"createDate": "2016-04-01T18:32:55.267+05:00",
"updateDate": "2016-04-01T18:32:55.267+05:00",
"attributes": [
"entities/0001L5U/attributes/FirstName/1n5qKm"
],
"singleAttributeUpdateDates": {}
}
],
"label": "Value1New",
"secondaryLabel": ""
}

Overwrite with "partialOverride" option

POST{    tenantUrl}/entities?options=partialOverride
{ 
"type":"configuration/entityTypes/HCP",
"attributes":{
"FirstName":[
{
"value":"Value1New"
}
]
},
"crosswalks":[
{
"type":"configuration/sources/FB",
"value":"entity1"
}
]
}

LastName attribute was not deleted in this case. Note that FirstName attribute has only one value because it was taken into the overwrite operation (it was present in the request JSON), and there was only one value in it. If you need to save the second value, then the value should be specified in the request JSON.

{ 
"URI":"entities/0001L5U",
"type":"configuration/entityTypes/HCP",
"createdBy":"ivan",
"createdTime":1459517575267,
"updatedBy":"ivan",
"updatedTime":1459517956024,
"attributes":{
"FirstName":[
{
"type":"configuration/entityTypes/HCP/attributes/FirstName",
"ov":true,
"value":"Value1New",
"URI":"entities/0001L5U/attributes/FirstName/1n6o0O"
}
],
"LastName":[
{
"type":"configuration/entityTypes/HCP/attributes/LastName",
"ov":true,
"value":"LastName1",
"URI":"entities/0001L5U/attributes/LastName/1n6WxM"
}
]
},
"isFavorite":false,
"crosswalks":[
{
"URI":"entities/0001L5U/crosswalks/1n5ZHk",
"type":"configuration/sources/FB",
"value":"entity1",
"reltioLoadDate":"2016-04-01T18:39:16.024+05:00",
"createDate":"2016-04-01T18:32:55.267+05:00",
"updateDate":"2016-04-01T18:32:55.267+05:00",
"attributes":[
"entities/0001L5U/attributes/FirstName/1n6o0O",
"entities/0001L5U/attributes/LastName/1n6WxM"
],
"singleAttributeUpdateDates":{

}
}
],
"label":"Value1New LastName1",
"secondaryLabel":""
}

updateAttributeUpdateDates Option

You can store update dates for each attribute. This information can be found in singleAttributeUpdateDates property of crosswalks. By default, Reltio Cloud does not save this information for an entity overwrite and assumes that update dates of all attributes are equal to the latest update date of the crosswalks to which attributes are related. The updateAttributeUpdateDatesoption changes this behaviour. If this option is present, then singleAttributeUpdateDates property of crosswalks will be updated for changed and new attributes.

Existing entity

[
{
"URI": "entities/0001L5U",
"type": "configuration/entityTypes/HCP",
"createdBy": "ivan",
"createdTime": 1459517575267,
"updatedBy": "ivan",
"updatedTime": 1459517575267,
"attributes": {
"FirstName": [
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": true,
"value": "Value2",
"URI": "entities/0001L5U/attributes/FirstName/1n5QlE"
},
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": true,
"value": "Value1",
"URI": "entities/0001L5U/attributes/FirstName/1n5MUy"
}
]
},
"isFavorite": false,
"crosswalks": [
{
"URI": "entities/0001L5U/crosswalks/1n5ZHk",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T18:32:55.267+05:00",
"createDate": "2016-04-01T18:32:55.267+05:00",
"updateDate": "2016-04-01T18:32:55.267+05:00",
"attributes": [
"entities/0001L5U/attributes/FirstName/1n5QlE",
"entities/0001L5U/attributes/FirstName/1n5MUy"
],
"singleAttributeUpdateDates": {}
}
],
"label": "Value2",
"secondaryLabel": ""
}
]

 

Overwrite with "updateAttributeUpdateDates" option

POST{    tenantUrl}/entities?options=updateAttributeUpdateDate
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"FirstName": [
{
"value": "Value1New"
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"value": "entity1"
}
]
}

The singleAttributeUpdateDates section of entity crosswalk contains the update date for the FirstName attribute.

{
"URI": "entities/0001L5U",
"type": "configuration/entityTypes/HCP",
"createdBy": "ivan",
"createdTime": 1459517575267,
"updatedBy": "ivan",
"updatedTime": 1459517956024,
"attributes": {
"FirstName": [
{
"type": "configuration/entityTypes/HCP/attributes/FirstName",
"ov": true,
"value": "Value1New",
"URI": "entities/0001L5U/attributes/FirstName/1n6o0O"
}
]
},
"isFavorite": false,
"crosswalks": [
{
"URI": "entities/0001L5U/crosswalks/1n5ZHk",
"type": "configuration/sources/FB",
"value": "entity1",
"reltioLoadDate": "2016-04-01T18:39:16.024+05:00",
"createDate": "2016-04-01T18:32:55.267+05:00",
"updateDate": "2016-04-01T18:32:55.267+05:00",
"attributes": [
"entities/0001L5U/attributes/FirstName/1n6o0O",
"entities/0001L5U/attributes/LastName/1n6WxM"
],
"singleAttributeUpdateDates": {
"entities/0001L5U/attributes/FirstName/1n6o0O": "2016-04-01T18:39:16.024+05:00"
}
}
],
"label": "Value1New",
"secondaryLabel": ""
}

preserveURIs Option

URIs of attribute values can be changed during the overwrite operation (if an attribute has more than one value and at least one of values were changed). As you can see in the previous example, the URI of the value of FirstName attribute was changed after the overwrite.

 To avoid this Reltio API provides a preserveURIs option. If this option is present, then the API takes into account URIs that are specified for attribute values inside the request. In this case, the URIs of attribute values specified in the request JSON will not be changed.

 

Existing entity

{ 
"URI":"entities/0001L5U",
"type":"configuration/entityTypes/HCP",
"createdBy":"ivan",
"createdTime":1459517575267,
"updatedBy":"ivan",
"updatedTime":1459517575267,
"attributes":{
"FirstName":[
{
"type":"configuration/entityTypes/HCP/attributes/FirstName",
"ov":true,
"value":"Value2",
"URI":"entities/0001L5U/attributes/FirstName/1n5QlE"
},
{
"type":"configuration/entityTypes/HCP/attributes/FirstName",
"ov":true,
"value":"Value1",
"URI":"entities/0001L5U/attributes/FirstName/1n5MUy"
}
]
},
"isFavorite":false,
"crosswalks":[
{
"URI":"entities/0001L5U/crosswalks/1n5ZHk",
"type":"configuration/sources/FB",
"value":"entity1",
"reltioLoadDate":"2016-04-01T18:32:55.267+05:00",
"createDate":"2016-04-01T18:32:55.267+05:00",
"updateDate":"2016-04-01T18:32:55.267+05:00",
"attributes":[
"entities/0001L5U/attributes/FirstName/1n5QlE",
"entities/0001L5U/attributes/FirstName/1n5MUy"
],
"singleAttributeUpdateDates":{

}
}
],
"label":"Value2 LastName1",
"secondaryLabel":""
}

Overwrite with preserveURIs Option

POST{    tenantUrl}/entities?options=updateAttributeUpdateDate
{ 
"type":"configuration/entityTypes/HCP",
"attributes":{
"FirstName":[
{
"value":"Value1New",
"URI":"entities/0001L5U/attributes/FirstName/1n5QlE"
}
]
},
"crosswalks":[
{
"type":"configuration/sources/FB",
"value":"entity1"
}
]
}

In this case, the URI of attribute value was not changed.

Results:



{
"URI":"entities/0001L5U",
"type":"configuration/entityTypes/HCP",
"createdBy":"ivan",
"createdTime":1459517575267,
"updatedBy":"ivan",
"updatedTime":1459517956024,
"attributes":{
"FirstName":[
{
"type":"configuration/entityTypes/HCP/attributes/FirstName",
"ov":true,
"value":"Value1New",
"URI":"entities/0001L5U/attributes/FirstName/1n5QlE"
}
]
},
"isFavorite":false,
"crosswalks":[
{
"URI":"entities/0001L5U/crosswalks/1n5ZHk",
"type":"configuration/sources/FB",
"value":"entity1",
"reltioLoadDate":"2016-04-01T18:39:16.024+05:00",
"createDate":"2016-04-01T18:32:55.267+05:00",
"updateDate":"2016-04-01T18:32:55.267+05:00",
"attributes":[
"entities/0001L5U/attributes/FirstName/1n5QlE"
],
"singleAttributeUpdateDates":{

}
}
],
"label":"Value1New",
"secondaryLabel":""
}

 

Crosswalk properties: contributorProvider and globalContributorProvider.

 

You can associate new crosswalks or move existing crosswalks to an existing contributor. See Association of Crosswalk With Proper Contributor.

 

Reltio does not recommend to use this functionality. Instead, use overwrite functionality for any updates.

 

References

 

https://docs.reltio.com/entitiesapi/createentities.html?hl=update%2Centities

https://docs.reltio.com/entitiesapi/partialoverride.html

 

 

 

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.