Provides functionalities for managing Data Matching Definitions, which are configurations for matching jobs to identify duplicates or link records across data sources. These endpoints support creating, reading, updating, and deleting these configurations.
Create a new Data Matching Definition with the given configuration.
Configuration example:
<?xml version="1.0" standalone="no" ?>
<duke>
<object class="no.priv.garshol.duke.comparators.QGramComparator" name="NameComparator">
<param name="formula" value="DICE"/>
<param name="q" value="3"/>
</object>
<schema>
<threshold>0.7</threshold>
<property type="ignore">
<name>STORAGE_ID</name>
</property>
<property type="ignore">
<name>DATA_SOURCE_ID</name>
</property>
<property type="id">
<name>BUSINESS_PARTNER_ID</name>
</property>
<property lookup="required">
<name>COUNTRY_SHORTNAME</name>
<comparator>no.priv.garshol.duke.comparators.ExactComparator</comparator>
<low>0.0</low>
<high>0.5</high>
</property>
<property lookup="true">
<name>NAME</name>
<comparator>NameComparator</comparator>
<low>0.1</low>
<high>0.9</high>
</property>
</schema>
<database class="no.priv.garshol.duke.databases.LuceneDatabase">
<param name="max-search-hits" value="100"/>
<param name="min-relevance" value="0.9"/>
<param name="fuzzy-search" value="true"/>
<param name="boost-mode" value="INDEX"/>
</database>
<data-source class="cdq.cdl.matching.datasource.MatchingDataSource">
<column
cleaner="no.priv.garshol.duke.cleaners.LowerCaseNormalizeCleaner" name="businessPartner.address.country.shortName" property="COUNTRY_SHORTNAME"/>
<column
cleaner="no.priv.garshol.duke.cleaners.LowerCaseNormalizeCleaner"
configProperty="COUNTRY_SHORTNAME" name="businessPartner.names[0].value" property="NAME"/>
</data-source>
</duke>
OK
The sent request is malformed.
{- "name": "Custom Matching Definition Name",
- "type": "DEDUPLICATION",
- "xmlDukeConfiguration": "<duke>...</duke>",
- "reportConfiguration": {
- "header": [
- {
- "attributeJsonPath": "attributeJsonPath",
- "columnName": "External ID"
}
]
}, - "goldenRecordConfiguration": {
- "decisionStrategy": {
- "root": {
- "rule": {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}, - "yesBranch": { },
- "noBranch": { }
}
}, - "creationStrategy": {
- "type": "CONSTANT",
- "protectedAttributes": [
- "External ID"
], - "recordExclusionRules": [
- {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}
], - "attributeEnhancementRules": [
- {
- "attributes": [
- "External ID"
], - "constraintChain": {
- "constraints": [
- {
- "type": null,
- "jsonPath": null,
- "valueType": null,
- "expectedValues": [ ]
}
], - "allRecordsShouldMatch": "true",
- "constraintChainType": "AND"
}, - "creationType": "CONSTANT",
- "creationConstant": "constantValue",
- "executionType": "SET",
- "fallbackExecutionType": "SET"
}
]
}
}, - "workspace": {
- "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}
{- "id": "6461e6113b1865304b3038b6",
- "name": "Custom Matching Definition Name",
- "creatorUsername": "johndoe",
- "creatorOrganization": "cdq_monitor",
- "createdAt": "2025-01-29T16:52:44Z",
- "lastModifiedAt": "2025-01-29T16:52:44Z",
- "type": "DEDUPLICATION",
- "xmlDukeConfiguration": "<duke>...</duke>",
- "reportConfiguration": {
- "header": [
- {
- "attributeJsonPath": "attributeJsonPath",
- "columnName": "External ID"
}
]
}, - "goldenRecordConfiguration": {
- "decisionStrategy": {
- "root": {
- "rule": {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}, - "yesBranch": { },
- "noBranch": { }
}
}, - "creationStrategy": {
- "type": "CONSTANT",
- "protectedAttributes": [
- "External ID"
], - "recordExclusionRules": [
- {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}
], - "attributeEnhancementRules": [
- {
- "attributes": [
- "External ID"
], - "constraintChain": {
- "constraints": [
- {
- "type": null,
- "jsonPath": null,
- "valueType": null,
- "expectedValues": [ ]
}
], - "allRecordsShouldMatch": "true",
- "constraintChainType": "AND"
}, - "creationType": "CONSTANT",
- "creationConstant": "constantValue",
- "executionType": "SET",
- "fallbackExecutionType": "SET"
}
]
}
}, - "workspace": {
- "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}
Delete a Data Matching Definition by its ID.
OK
The sent request is malformed.
Permission denied.
{- "status": "400",
- "path": "/v2/businesspartners/lookup",
- "timestamp": "2025-01-29T16:52:44Z",
- "error": "BAD_REQUEST",
- "message": "This user is not allowed to access this service."
}
Read a page of existing Data Matching Definitions.
matchingType | string (MatchingType) Type of the matching configuration.
Example: matchingType=DEDUPLICATION | ||||||
page | integer <int32> >= 0 Default: 0 Number of the retrieved result page. Example: page=1 | ||||||
pageSize | integer <int32> >= 1 Default: 20 Maximum number of items to be returned in the result page. Example: pageSize=20 | ||||||
workspaceId | string (WorkspaceId) ID of the workspace. Example: workspaceId=c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4 |
OK
The sent request is malformed.
Permission denied.
{- "page": "1",
- "pageSize": "100",
- "numberOfPages": "3",
- "total": "67",
- "values": [
- {
- "id": "6461e6113b1865304b3038b6",
- "name": "Custom Matching Definition Name",
- "creatorUsername": "johndoe",
- "creatorOrganization": "cdq_monitor",
- "createdAt": "2025-01-29T16:52:44Z",
- "lastModifiedAt": "2025-01-29T16:52:44Z",
- "type": "DEDUPLICATION",
- "xmlDukeConfiguration": "<duke>...</duke>",
- "reportConfiguration": {
- "header": [
- {
- "attributeJsonPath": "attributeJsonPath",
- "columnName": "External ID"
}
]
}, - "goldenRecordConfiguration": {
- "decisionStrategy": {
- "root": {
- "rule": {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- null
]
}, - "yesBranch": { },
- "noBranch": { }
}
}, - "creationStrategy": {
- "type": "CONSTANT",
- "protectedAttributes": [
- "External ID"
], - "recordExclusionRules": [
- {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- null
]
}
], - "attributeEnhancementRules": [
- {
- "attributes": [
- null
], - "constraintChain": {
- "constraints": [ ],
- "allRecordsShouldMatch": null,
- "constraintChainType": null
}, - "creationType": "CONSTANT",
- "creationConstant": "constantValue",
- "executionType": "SET",
- "fallbackExecutionType": "SET"
}
]
}
}, - "workspace": {
- "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}
]
}
Read an existing Data Matching Definition by its ID.
OK
The sent request is malformed.
Permission denied.
{- "id": "6461e6113b1865304b3038b6",
- "name": "Custom Matching Definition Name",
- "creatorUsername": "johndoe",
- "creatorOrganization": "cdq_monitor",
- "createdAt": "2025-01-29T16:52:44Z",
- "lastModifiedAt": "2025-01-29T16:52:44Z",
- "type": "DEDUPLICATION",
- "xmlDukeConfiguration": "<duke>...</duke>",
- "reportConfiguration": {
- "header": [
- {
- "attributeJsonPath": "attributeJsonPath",
- "columnName": "External ID"
}
]
}, - "goldenRecordConfiguration": {
- "decisionStrategy": {
- "root": {
- "rule": {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}, - "yesBranch": { },
- "noBranch": { }
}
}, - "creationStrategy": {
- "type": "CONSTANT",
- "protectedAttributes": [
- "External ID"
], - "recordExclusionRules": [
- {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}
], - "attributeEnhancementRules": [
- {
- "attributes": [
- "External ID"
], - "constraintChain": {
- "constraints": [
- {
- "type": null,
- "jsonPath": null,
- "valueType": null,
- "expectedValues": [ ]
}
], - "allRecordsShouldMatch": "true",
- "constraintChainType": "AND"
}, - "creationType": "CONSTANT",
- "creationConstant": "constantValue",
- "executionType": "SET",
- "fallbackExecutionType": "SET"
}
]
}
}, - "workspace": {
- "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}
Update an existing Data Matching Definition with the given configuration.
object (GoldenRecordConfiguration) Configuration for creating Golden Records in the context of Data Matching. | |||||||
name required | string <= 30 characters A human-readable name for the Data Matching Definition instance. Example: "Custom Matching Definition Name" | ||||||
object (ReportConfiguration) Configuration for generating reports related to the Data Matching Definition. | |||||||
type required | string (MatchingType) Type of the matching configuration.
Example: "DEDUPLICATION" | ||||||
object (Workspace) Collaboration space to share/configure configurations. | |||||||
xmlDukeConfiguration required | string Holds the Duke XML configuration for data matching. Example: "<duke>...</duke>" |
OK
The sent request is malformed.
Permission denied.
{- "name": "Custom Matching Definition Name",
- "type": "DEDUPLICATION",
- "xmlDukeConfiguration": "<duke>...</duke>",
- "reportConfiguration": {
- "header": [
- {
- "attributeJsonPath": "attributeJsonPath",
- "columnName": "External ID"
}
]
}, - "goldenRecordConfiguration": {
- "decisionStrategy": {
- "root": {
- "rule": {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}, - "yesBranch": { },
- "noBranch": { }
}
}, - "creationStrategy": {
- "type": "CONSTANT",
- "protectedAttributes": [
- "External ID"
], - "recordExclusionRules": [
- {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}
], - "attributeEnhancementRules": [
- {
- "attributes": [
- "External ID"
], - "constraintChain": {
- "constraints": [
- {
- "type": null,
- "jsonPath": null,
- "valueType": null,
- "expectedValues": [ ]
}
], - "allRecordsShouldMatch": "true",
- "constraintChainType": "AND"
}, - "creationType": "CONSTANT",
- "creationConstant": "constantValue",
- "executionType": "SET",
- "fallbackExecutionType": "SET"
}
]
}
}, - "workspace": {
- "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}
{- "id": "6461e6113b1865304b3038b6",
- "name": "Custom Matching Definition Name",
- "creatorUsername": "johndoe",
- "creatorOrganization": "cdq_monitor",
- "createdAt": "2025-01-29T16:52:44Z",
- "lastModifiedAt": "2025-01-29T16:52:44Z",
- "type": "DEDUPLICATION",
- "xmlDukeConfiguration": "<duke>...</duke>",
- "reportConfiguration": {
- "header": [
- {
- "attributeJsonPath": "attributeJsonPath",
- "columnName": "External ID"
}
]
}, - "goldenRecordConfiguration": {
- "decisionStrategy": {
- "root": {
- "rule": {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}, - "yesBranch": { },
- "noBranch": { }
}
}, - "creationStrategy": {
- "type": "CONSTANT",
- "protectedAttributes": [
- "External ID"
], - "recordExclusionRules": [
- {
- "type": "HAS_VALUE",
- "jsonPath": "attributeJsonPath",
- "valueType": "TEXT",
- "expectedValues": [
- "expectedValue"
]
}
], - "attributeEnhancementRules": [
- {
- "attributes": [
- "External ID"
], - "constraintChain": {
- "constraints": [
- {
- "type": null,
- "jsonPath": null,
- "valueType": null,
- "expectedValues": [ ]
}
], - "allRecordsShouldMatch": "true",
- "constraintChainType": "AND"
}, - "creationType": "CONSTANT",
- "creationConstant": "constantValue",
- "executionType": "SET",
- "fallbackExecutionType": "SET"
}
]
}
}, - "workspace": {
- "id": "c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4"
}
}