Duplicate data is very common these days given the multiple channels that bring data into the system. Lets explore what AX 2012 has to offer to help detect duplicates.
Is there a standard feature to detect duplicates?
Yes, duplicates are checked on demand as well as on record creation. However, AX 2012 checks for duplicate Party records only and not the entity records itself.
In AX 2012, an Individual (person) or an Organization information can be dealt with (managed!) in many ways like a Lead/ Prospect/ Contact/ Customer/Vendor etc. Often, the same Individual/Organization is related with the business in more than one role. To maintain these details, AX 2012 stores them in the Global Address Book (GAB) as Party (DirParty table) records in addition to the Entity(Customer/Contact etc.,) thus enabling a Party to play multiple roles. Example: John Doe is a Party with roles of both Customer and Vendor. In such a case, Party, Customer and Vendor records are maintained in AX for John Doe. The Party record is shown on the Name (lookup) on the Customer and Vendor records.
Now lets check out the standard duplicate detection with an example to understand it better.
Note the First Name, Last Name and Contact For details of an existing contact. Say, Lilly Grace.
Also note that there is a party record for each of these contacts in the GAB.
Now lets run a few tests
Test 1: Create another Contact with the same Name (Party). When the ‘Duplicate detected’ screen pops up, choose the ‘Add new person’ option. Notice that duplicate party records and duplicate contacts are created.
Test 2: Create another Contact with the same ‘Name’ (Party) and same ‘Contact For’. The ‘Duplicate detected’ screen will pop up showing that a duplicate party exists. Note that the prompt says the record exists in Global Address Book indicating that a duplicate Party exists not Contact itself. Choose the ‘Use selected record’ option and try to save the Contact record. You’ll now see a STOP error indicating that a duplicate Contact record cannot be created.
The critical STOP error is due to the index defined on Party in the ContactPerson table. Close the error message and cancel the contact creation form.
Test 3: Create another Contact with the same ‘Name’ (Party) but different ‘Contact For’. Use Sally Thompson to test this time. When the duplicate detected screen pops up then choose the ‘Use selected record’ option. Notice that duplicate Contacts are created despite choosing to use the selected record. However, the same Party record is used in both contacts.
Is it optional?
There is a setting that controls the duplicate detection called “Use Check Duplicates” that is enabled by default. This setting can be found in Organization Administration –> Setup –> Global Address Book –> Address Book Parameters. Uncheck this if you don’t want the duplicate check.
Is it Configurable?
Not in the standard product. There is no configuration setting to allow adding any other entity (table) or field to the duplicate check. However, customization (through code) can be done to include additional fields in the search for duplicates.
Finally, even if the duplicate detection feature exists in AX 2012, as discussed it is limited to the party table. Customization is required if you need to add additional entities or attributes in the duplicate detection criteria.
Hope this helps!