USP_DATALIST_WEBFORMS_CONSTITUENT_DUPLICATEMATCH

Parameters

Parameter Parameter Type Mode Description
@MAXRESULTS int IN
@KEYNAME nvarchar(100) IN
@FIRSTNAME nvarchar(50) IN
@TITLECODEID uniqueidentifier IN
@ADDRESSBLOCK nvarchar(150) IN
@COUNTRYID uniqueidentifier IN
@POSTCODE nvarchar(12) IN
@PHONENUMBER nvarchar(100) IN
@EMAILADDRESS UDT_EMAILADDRESS IN

Definition

Copy


CREATE procedure dbo.USP_DATALIST_WEBFORMS_CONSTITUENT_DUPLICATEMATCH (
    @MAXRESULTS int = 2,
    @KEYNAME nvarchar(100) = '',
    @FIRSTNAME nvarchar(50) = '',
    @TITLECODEID uniqueidentifier = null,
    @ADDRESSBLOCK nvarchar(150) = '',
    @COUNTRYID uniqueidentifier= null,
    @POSTCODE nvarchar(12) = '',
    @PHONENUMBER nvarchar(100) = '',
    @EMAILADDRESS dbo.UDT_EMAILADDRESS = ''
)
-- Only returns a list of individuals (not groups or organizations)

-- Including these types will probably mean some consideration for how to handle first name (since these constituent types don't have theses)

as
    set nocount on;

    declare @AUTOMATCHTHRESHOLD decimal(20,4) = dbo.UFN_CONSTITUENTDUPLICATESEARCHSETTINGS_GETAUTOMATCHTHRESHOLD_BYID('7BDE63AA-73B8-4A31-BE9F-82D92B67E2F4')
    if @AUTOMATCHTHRESHOLD is null
        set @AUTOMATCHTHRESHOLD = 95

    select top (@MAXRESULTS)
        CONSTITUENTID,
        MATCHPERCENTAGE
    from dbo.UFN_FINDCONSTITUENTMATCHES_COMPOSITETHRESHOLD_2 (
        @TITLECODEID,
        @FIRSTNAME,
        '', -- @MIDDLENAME: We don't do middle name currently

        @KEYNAME,
        null, --@SUFFIXCODEID: We don't do suffix currently

        @ADDRESSBLOCK,
        @POSTCODE,
        @COUNTRYID,
        0, -- @ISORGANIZATION bit: We assume individuals currently

        0, -- @ISGROUP bit: We assume individuals currently

        null, --@LOOKUPID

        null, --@ALTERNATELOOKUPIDS

        @EMAILADDRESS,
        @PHONENUMBER,
        @AUTOMATCHTHRESHOLD, --@OVERALLMATCHTHRESHOLD: our bail-out threshold

        @AUTOMATCHTHRESHOLD
    ) as [MATCHES]
    order by MATCHPERCENTAGE desc