IFindDuplicatesPlugin plugin interface

The FindDuplicatesPlugin plugin implementation implements the IFindDuplicatesPlugin plugin interface in Gosu and is available in Guidewire Studio™ for ContactManager. To view or edit the plugin implementation, start ContactManager Studio. Then, in the Project window, navigate to configuration > gsrc and then to gw.plugin.contact.findduplicates.FindDuplicatesPlugin.

Note: The FindDuplicatesPlugin plugin implementation and its helper classes use Gosu generics. For more information, see Generics.

The plugin attempts to find exact and potential matches for the subtype of ABContact that is passed to it. If no duplicate finder exists for the subtype, the plugin traverses the ABContact tree to find the closest parent type it can use in the search.

The plugin uses a set of duplicate finder classes, which define potential and exact match logic for a set of ABContact subtypes. The plugin sets up the duplicate finder classes in two Map definitions:

static final var WIDE_MAP : Map<typekey.ABContact, 
       Type<DuplicateFinderBase>> = { 
  typekey.ABContact.TC_ABCOMPANY ->
    CompanyDuplicateFinder<ABCompany>,
  typekey.ABContact.TC_ABPERSON ->
    PersonDuplicateFinder<ABPerson>,
  typekey.ABContact.TC_ABPLACE ->
    PlaceDuplicateFinder
}
static final var DEFAULT_MAP : Map<typekey.ABContact, 
       Type<DuplicateFinderBase>> = {
  typekey.ABContact.TC_ABCOMPANYVENDOR ->
    CompanyDuplicateFinder<ABCompanyVendor>,
  typekey.ABContact.TC_ABCOMPANY ->
    CompanyDuplicateFinder<ABCompany>,
  typekey.ABContact.TC_ABPERSONVENDOR ->
    PersonVendorDuplicateFinder,
  typekey.ABContact.TC_ABUSERCONTACT ->
    UserDuplicateFinder,
  typekey.ABContact.TC_ABPERSON ->
    PersonDuplicateFinder<ABPerson>,
  typekey.ABContact.TC_ABPLACE ->
    PlaceDuplicateFinder
}

These two Map definitions are likely to be the only area of the plugin itself that you need to edit. For example, if you add a duplicate finder class for the ABAttorney subtype, you could add a typekey definition for that class to the DEFAULT_MAP definition. You do not have to add a map definition for any subtype, even a subtype extension that you create. Because the plugin traverses the ABContact tree to find the nearest parent type, any subtype of ABContact already has matching logic defined for it. Add a duplicate finder class only if you need special matching logic for a subtype.

Note: In the base configuration, WIDE_MAP is configured with fewer subtypes than DEFAULT_MAP, resulting in looser matching. This behavior is the intended use of these two variables. However, there is no semantic difference between WIDE_MAP and DEFAULT_MAP. For example, if you added more subtypes to WIDE_MAP, you could make search results using WIDE_MAP more specific than DEFAULT_MAP.

The WIDE_MAP definition is used by the ContactManager batch process Duplicate Contact Finder in the configuration parameter DuplicateContactsWideSearch. Additionally, it is used in contact linking calls from ClaimCenter.

See also