MDM-MasterRecord
.MDM-CandidateLocal
relationship type.MDM-CandidateLocal
.
MDM-IgnoreCandidate
(which indicates a known false-match).MDM-RecordOfTruth
. IPolicyDecisionService
and ask for a decision on each of the flagged policies in each of the locals and will return either:ResourceMergeConfigurationSection
to determine the appropriate instances of MdmResourceListener<T>
to construct and register with the provider.Saving
and Inserting
events of the repository service are subscribed on service start. Whenever data through a repository is being actioned the events are raised and the following actions occur on the MDM Resource Listener:Find()
or Get()
methods are called the repository will call the Retrieving
and Querying
event handlers. The MDM resource listener for that repository will perform the following operations:SOURCE_C
record would be updated to match and the matching re-run, it may be determined that SOURCE_C
is in fact the same person as MASTER_A
SOURCE_C
is DETACHED from MASTER_C
and then attached to MASTER_A
.SOURCE_C
and MASTER_A
.IRepositoryService<EntityRelationship>
services to implement custom logic for merging and linking. By default the MDM layer registers IRecordMergeService<T>
instances which implement a default behavior for external calls to MERGE data.Merge()
in IRecordMergeService<T>
, and passing a UUID of a MASTER record and the linked duplicate UUIDs that are either:Merge MDM Master
permissionMDM-Master
) and re-establishing the link on the locals to the surviving master. This is a form of linking where neither the master nor the local records are merged. Write MDM Master
permission, and issues the following ADT^A40
:XXXXX
in domain TEST (MASTER)YYYYY
in domain TEST (MASTER)Merge()
for MASTER>MASTERWrite MDM Master
so record XXXXX
remains the target of the merge.Merge MDM Master
so record YYYYY
is resolved to LOCAL record for TEST_HARNESS at site TEST (LYYYY
)LYYYY
is disconnected from master YYYY
LYYYY
is attached to master XXXX
YYYY
it is obsoleted.Merge MDM Master
policy permission, otherwise an alternate merge strategy is used.XXXX
in domain TEST (MASTER)YYYY
in domain TEST (MASTER)Merge()
for MASTER>MASTERWrite MDM Master
so record XXXX
remains target of mergeMerge MDM Master
so record YYYY
remains source of mergeMDM-Master
associations previously pointing at YYYY
are rewritten to XXXX
YYYY
master record are copied to XXXX
YYYY
is obsoleted XXXX
in domain TEST (MASTER)YYYY
in domain TEST (MASTER)Merge()
for MASTER>MASTERWrite MDM Master
so a local record for XXXX
is resolved (LXXXX
)Merge MDM Master
so a local record for YYYY
is resolved (LYYYY
)LYYYY
and LXXXX
were resolved, then the merge occurs:LYYYY
is obsoletedLYYYY
are copied to LXXXX
so that any query to LYYYY
are resolved to the survivor