Monday, July 23, 2012

Parties not merging in MDM 10 (with Initiate Matching)

I have a default MDM 10 instance with the Initiate engine turned on, which I am using for a demo (as discussed in a previous entry).  I added three very similar parties, with suspect processing enabled, and they did not merge as expected using default matching rules (they have identical SSNs and addresses, and similar names).



I ran createSuspects using the IVT - no dice.  No suspects were generated.  So I went to the version 10 developers guide for the party domain, and did some investigation.  In order to properly perform suspect processing, the Initiate engine and MDM need to be kept in sync.  In fact, a new transaction "synchronizeeMe" was included for this very purpose.  I also found that the Evergreen Console from v9 has been updated to include this transaction (so I can run all parties through standardization, synchronization, create suspects, and collapse).


This accomplished what I was looking for - my parties created suspects and collapsed into one.  The Initiate engine tables were populated with values for future matching.  However, what if I want the synchronization step to be automatic?  I can perhaps understand why I might want the sync step controllable if I am running a batch load with many threads, and the synchronization might affect performance adversely.  But for a demo, where we want to show off features as simply as possible, I wanted it to be automatic.

Fortunately, the developers' guide has a solution for this as well via the CONFIGELEMENT table.

update configelement set value='true',last_update_dt = current_timestamp where name = '/IBM/DWLCommonServices/DerivedDataSynchronization/enabled';

Once I updated this value and recycled MDM, I emptied my database of operational data and re-ran the batch.  All parties merged!  

Note that only 1 party is in the contact table.  I inserted 3 records, so we wound up with the desirable result: 1 add and 2 updates.

By the way, don't forget to clean out the Initiate tables (EME_RECBKTD, EME_RECCMPD, EME_RECHEAD) when you are cleaning operational data from your system.  You will otherwise get an error if the deleted parties match with any new ones.

No comments:

Post a Comment