Additional Examples of matchOvOnly
The matchOvOnly
is the optional nested attribute configuration
property, which helps to define whether the OV values of sub-attributes will be considered when
different values of the nested attributes are merged.
For more information, see Attributes configuration.
Example #1:
matchOvOnly
:
true
, when nested attributes are at the first level, and one of the nested
attributes is
ignored.
Precondition
Meta-configuration
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/EmailAddress"
],
"matchOvOnly": true
Steps
Create entity 1
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"ov": false,
"value": "v001"
}
],
"EmailAddress": [
{
"ov": false,
"value": "id@host.com"
}
]
},
"ignored": true,
"ov": false
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v003"
}
]
}
]
The
nested attribute L1 is ignored = true
.
As a result, the nested value
has OV = false
. So, all the sub-nested-attributes of L1 (MdmID,
EmailAddress) are OV = false
.
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"EmailAddress": [
{
"value": "id@host.com"
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v002"
}
]
}
]
Nested
attribute L1 has OV = true
. All sub-nested-attributes of L1
(MdmID
, EmailAddress
) are OV =
true
.
Result
The resulting entity after the merge has two nested attribute values. One value is nested from first entity. The other value is nested from the second entity. Due tomatchOvOnly
:
true
, they will not be merged even if they have the same values for
EmailAddress
.Example #2:
matchOvOnly
: true
when the nested attributes at the first level, and both nested values are OV =
true
.
Precondition
Meta-configuration
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/EmailAddress"
],
"matchOvOnly": true
Steps
Create entity 1
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"ov": false,
"value": "v001"
}
],
"EmailAddress": [
{
"ov": false,
"value": "id@host.com"
}
]
},
"ov": false
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v003"
}
]
}
]
Nested
attribute L1 is OV = true
. All sub-nested attributes of L1
(MdmID
, EmailAddress
) are OV =
true
.
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"EmailAddress": [
{
"value": "id@host.com"
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v002"
}
]
}
]
Nested
attribute L1 is OV = true
. All sub-nested attributes of L1
(MdmID
, EmailAddress
) are OV =
true
.
Result
After the merge of the entities, two nested attributes from source entities were merged and became one nested attribute in the resulting entity.
Example #3:
The matchOvOnly
:
true
when nested attributes are at the second level and one of the nested
attributes is
ignored.
Precondition
Meta-configuration
configuration/entityTypes/HCP/attributes/L1
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/Email",
"configuration/entityTypes/HCP/attributes/L1/attributes/Type"
]
"matchOvOnly": true
configuration/entityTypes/HCP/attributes/L1/attributes/L2:
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/L2/attributes/Email",
"configuration/entityTypes/HCP/attributes/L1/attributes/L2/attributes/Type"
]
"matchOvOnly": true
Steps
Create entity 1
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"Type": [
{
"value": "Office"
}
],
"Email": [
{
"value": "id@host.com"
}
],
"L2": [
{
"value": {
"MdmID": [
{
"value": "v001_inner"
}
],
"Type": [
{
"value": "Office_inner"
}
],
"Email": [
{
"value": "id@host.com_inner"
}
]
}
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v003"
}
]
}
]
The
nested attribute Email and L2 are OV = true
. All sub-nested attributes of
L2 are OV = true
.
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"Type": [
{
"value": "Office"
}
],
"Email": [
{
"value": "id@host.com"
}
],
"L2": [
{
"value": {
"MdmID": [
{
"value": "v001_inner"
}
],
"Type": [
{
"value": "Office_inner"
}
],
"Email": [
{
"value": "id@host.com_inner"
}
]
},
"ignored": true,
"ov": false
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v002"
}
]
}
]
Nested
attribute L1 is OV = true
, L2 is OV = false
. All
sub-nested attributes of L2 is OV = false
since their upper nested are OV =
false
.
Result
After marge
the resulting entity has one nested attribute L1. There are two sub-nested L2 attributes
inside L1 attribute, one with OV = true
and one with OV =
false
.
Example #4:
The matchOvOnly
is
true
when the nested attributes are at the second level. Both nested
values are
true
.
Precondition
Meta-configuration
configuration/entityTypes/HCP/attributes/L1
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/Email",
"configuration/entityTypes/HCP/attributes/L1/attributes/Type"
]
"matchOvOnly": true
configuration/entityTypes/HCP/attributes/L1/attributes/L2:
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/L2/attributes/Email",
"configuration/entityTypes/HCP/attributes/L1/attributes/L2/attributes/Type"
]
"matchOvOnly": true
Steps
Create entity 1
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"Type": [
{
"value": "Office"
}
],
"Email": [
{
"value": "id@host.com"
}
],
"L2": [
{
"value": {
"MdmID": [
{
"value": "v001_inner"
}
],
"Type": [
{
"value": "Office_inner"
}
],
"Email": [
{
"value": "id@host.com_inner"
}
]
}
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v003"
}
]
}
]
Nested
attribute Email
and L2 are OV = true
. All sub-nested
attributes of L2 are OV = true
.
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"Type": [
{
"value": "Office"
}
],
"Email": [
{
"value": "id@host.com"
}
],
"L2": [
{
"value": {
"MdmID": [
{
"value": "v001_inner"
}
],
"Type": [
{
"value": "Office_inner"
}
],
"Email": [
{
"value": "id@host.com_inner"
}
]
}
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v002"
}
]
}
]
Nested
attribute email has OV = true
. Also, L2 has OV = true
.
Result
The resulting entity after the merge
will have one nested attribute Email
. If there is one sub-nested L2 inside
Email
attribute, then the sub-nested attributes are merged.
Example #5:
The matchOvOnly
:
true
when the nested attributes are at the second level and one of the
nested at the first level is
ignored.
Precondition
Meta-configuration
configuration/entityTypes/HCP/attributes/L1
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/Email",
"configuration/entityTypes/HCP/attributes/L1/attributes/Type"
]
"matchOvOnly": true
configuration/entityTypes/HCP/attributes/L1/attributes/L2:
"matchFieldURIs": [
"configuration/entityTypes/HCP/attributes/L1/attributes/L2/attributes/Email",
"configuration/entityTypes/HCP/attributes/L1/attributes/L2/attributes/Type"
]
"matchOvOnly": true
Steps
Create entity 1
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"Type": [
{
"value": "Office"
}
],
"Email": [
{
"value": "id@host.com"
}
],
"L2": [
{
"value": {
"MdmID": [
{
"value": "v001_inner"
}
],
"Type": [
{
"value": "Office_inner"
}
],
"Email": [
{
"value": "id@host.com_inner"
}
]
}
}
]
}
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v003"
}
]
}
]
The
nested attribute L1 and L2 both are OV = true
. All sub-nested-attributes of
L2 have OV = true
.Create entity 2
[
{
"type": "configuration/entityTypes/HCP",
"attributes": {
"L1": [
{
"value": {
"MdmID": [
{
"value": "v001"
}
],
"Type": [
{
"value": "Office"
}
],
"Email": [
{
"value": "id@host.com"
}
],
"L2": [
{
"value": {
"MdmID": [
{
"value": "v001_inner"
}
],
"Type": [
{
"value": "Office_inner"
}
],
"Email": [
{
"value": "id@host.com_inner"
}
]
}
}
]
},
"ignored": true,
"ov": false
}
]
},
"crosswalks": [
{
"type": "configuration/sources/FB",
"sourceTable": "HCP",
"value": "v002"
}
]
}
]
The
nested attribute L1 is OV = false
, L2 has OV = true
.
Result
The resulting entity after the merge
has two nested attributes of Email
.