USP_MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS_GETDATALIST

Returns a status list for the membership renewal notice process.

Parameters

Parameter Parameter Type Mode Description
@MEMBERSHIPRENEWALEFFORTPROCESSID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@STATUSCODE tinyint IN

Definition

Copy


CREATE procedure dbo.[USP_MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS_GETDATALIST]
(
  @MEMBERSHIPRENEWALEFFORTPROCESSID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @STATUSCODE tinyint = null
)
as
    set nocount on;

    declare @EXPORTPROCESSOUTPUTTABLE table (
        [ID] uniqueidentifier, 
        [PARAMETERSETID] uniqueidentifier, 
        [TABLEKEY] nvarchar(50), 
        [QUANTITY] integer
        [STATUSCODE] tinyint
        [WORDMERGEENABLED] bit
        [NETCOMMUNITYEMAILJOBENABLED] bit
        [NETCOMMUNITYEMAILJOBSTARTED] bit,
        [CHANNELCODE] tinyint
    )

    declare @BUSINESSPROCESSSTATUSID uniqueidentifier;

    declare curExport cursor for
    select [MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS].[SEGMENTATIONEXPORTPROCESSSTATUSID]
      from  dbo.[MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS]  
    left outer join dbo.[MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS]
        on [MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS].[MEMBERSHIPRENEWALEFFORTPROCESSSTATUSID] = [MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS].[ID]
    where [MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS].[PARAMETERSETID] = @MEMBERSHIPRENEWALEFFORTPROCESSID

    open curExport
    fetch next from curExport into @BUSINESSPROCESSSTATUSID
    while @@FETCH_STATUS = 0
    begin

        insert into @EXPORTPROCESSOUTPUTTABLE 
            exec USP_MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS_GETSEGMENTATIONEXPORTPROCESSOUTPUT @BUSINESSPROCESSSTATUSID

        fetch next from curExport into @BUSINESSPROCESSSTATUSID
    end
    close curExport
    deallocate curExport

    declare @EXPORTPROCESSOUTPUT table (
        [PARAMETERSETID] uniqueidentifier, 
        [TABLEKEY] nvarchar(50),
        [EMAILTABLEKEY] nvarchar(50),
        [WORDMERGEENABLED] bit,
        [NETCOMMUNITYEMAILJOBENABLED] bit,
        [NETCOMMUNITYEMAILJOBSTARTED] bit,
        [BUSINESSPROCESSOUTPUTID] uniqueidentifier,
        [NUMBERPROCESSEDEMAIL] int,
        [EMAILJOBSTATUSCODE] tinyint,
        [MULTIPLEEXPORTDEFINITIONMAIL] bit,
        [MULTIPLEEXPORTDEFINITIONEMAIL] bit
    )

    insert into @EXPORTPROCESSOUTPUT (
        [PARAMETERSETID]
    )
    select distinct [PARAMETERSETID]
    from @EXPORTPROCESSOUTPUTTABLE

    update @EXPORTPROCESSOUTPUT 
        set TABLEKEY = T.TABLEKEY,
            WORDMERGEENABLED = T.WORDMERGEENABLED,
            MULTIPLEEXPORTDEFINITIONMAIL = case 
                                            when (select count(*)
                                                    from @EXPORTPROCESSOUTPUTTABLE 
                                                    where [PARAMETERSETID] = E.PARAMETERSETID
                                                        and [CHANNELCODE] = 0) > 1 then 1
                                            else 0
                                        end
    from @EXPORTPROCESSOUTPUT
    inner join @EXPORTPROCESSOUTPUTTABLE T on E.PARAMETERSETID = T.PARAMETERSETID 
        and T.[CHANNELCODE] = 0
        and T.[QUANTITY] > 0

    update @EXPORTPROCESSOUTPUT 
        set [EMAILTABLEKEY] = T.[TABLEKEY],
            [NETCOMMUNITYEMAILJOBENABLED] = T.[NETCOMMUNITYEMAILJOBENABLED],
            [NETCOMMUNITYEMAILJOBSTARTED] = T.[NETCOMMUNITYEMAILJOBSTARTED],
            [BUSINESSPROCESSOUTPUTID] = T.[ID],
            [NUMBERPROCESSEDEMAIL] = T.[QUANTITY],
            [EMAILJOBSTATUSCODE] = T.[STATUSCODE],
            MULTIPLEEXPORTDEFINITIONEMAIL = case 
                                            when (select count(*)
                                                    from @EXPORTPROCESSOUTPUTTABLE 
                                                    where [PARAMETERSETID] = E.PARAMETERSETID
                                                        and [CHANNELCODE] = 1) > 1 then 1
                                            else 0
                                        end
    from @EXPORTPROCESSOUTPUT
    inner join @EXPORTPROCESSOUTPUTTABLE T on E.PARAMETERSETID = T.PARAMETERSETID 
        and T.[CHANNELCODE] = 1
        and T.[QUANTITY] > 0

    select
        [BUSINESSPROCESSSTATUS].[ID],
        case 
          when [SEGMENTATIONEXPORTPROCESSSTATUS].[NUMBERPROCESSED] is null then cast(3 as tinyint)
          else [BUSINESSPROCESSSTATUS].[STATUSCODE]
        end as [STATUSCODE],
        case 
            when [SEGMENTATIONEXPORTPROCESSSTATUS].[NUMBERPROCESSED] is null then N'Results cleared' 
            when [BUSINESSPROCESSSTATUS].[STATUSCODE] = 0 AND [SEGMENTATIONEXPORTPROCESSSTATUS].[NUMBEROFEXCEPTIONS] = 0 then N'Completed' 
            when [BUSINESSPROCESSSTATUS].[STATUSCODE] = 0 AND [SEGMENTATIONEXPORTPROCESSSTATUS].[NUMBEROFEXCEPTIONS] > 0 then N'Completed with exceptions' 
            when [BUSINESSPROCESSSTATUS].[STATUSCODE] = 1 then N'Running' 
            when [BUSINESSPROCESSSTATUS].[STATUSCODE] = 2 then N'Did not finish' 
            when [BUSINESSPROCESSSTATUS].[STATUSCODE] = 3 then N'Results cleared'
        end as [STATUS],
        [BUSINESSPROCESSSTATUS].[STARTEDON],
        [BUSINESSPROCESSSTATUS].[ENDEDON],
        datediff(s, [BUSINESSPROCESSSTATUS].[STARTEDON], coalesce([BUSINESSPROCESSSTATUS].[ENDEDON], getdate())) as [DURATION],
        isnull([APPUSER].[USERNAME],'') as [USERNAME],
        [BUSINESSPROCESSSTATUS].[ERRORMESSAGE],
        [BUSINESSPROCESSSTATUS].[SERVERNAME],
        [SEGMENTATIONEXPORTPROCESSSTATUS].[NUMBERPROCESSED],
        [SEGMENTATIONEXPORTPROCESSSTATUS].[NUMBEROFEXCEPTIONS],
        [MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS].[SEGMENTATIONEXPORTPROCESSSTATUSID] as [EXPORTID],
        [EXPORTOUTPUTTABLE].[PARAMETERSETID],
        [EXPORTOUTPUTTABLE].[TABLEKEY],
        [EXPORTOUTPUTTABLE].[WORDMERGEENABLED],
        [EXPORTOUTPUTTABLE].[EMAILTABLEKEY],
        [EXPORTOUTPUTTABLE].[NETCOMMUNITYEMAILJOBENABLED],
        [EXPORTOUTPUTTABLE].[NETCOMMUNITYEMAILJOBSTARTED],
        case [EXPORTOUTPUTTABLE].[MULTIPLEEXPORTDEFINITIONEMAIL]
            when 0 then [EXPORTOUTPUTTABLE].[BUSINESSPROCESSOUTPUTID]
            else null
        end as [BUSINESSPROCESSOUTPUTID],
        [EXPORTOUTPUTTABLE].[NUMBERPROCESSEDEMAIL],
        [EXPORTOUTPUTTABLE].[EMAILJOBSTATUSCODE],
        [EXPORTOUTPUTTABLE].[MULTIPLEEXPORTDEFINITIONMAIL],
        [EXPORTOUTPUTTABLE].[MULTIPLEEXPORTDEFINITIONEMAIL]

    from dbo.[BUSINESSPROCESSSTATUS]
    inner join dbo.[MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS]  
        on [MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS].[ID] = [BUSINESSPROCESSSTATUS].[ID]
    inner join dbo.[APPUSER] 
        on [APPUSER].[ID] = [BUSINESSPROCESSSTATUS].[STARTEDBYUSERID]
    left outer join dbo.[MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS]
        on [MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS].[MEMBERSHIPRENEWALEFFORTPROCESSSTATUSID] = [MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS].[ID]
    left outer join dbo.[BUSINESSPROCESSSTATUS] [SEGMENTATIONEXPORTPROCESSSTATUS]
        on  [SEGMENTATIONEXPORTPROCESSSTATUS].[ID] = [MKTMEMBERSHIPRENEWALEFFORTMAILINGPROCESS].[SEGMENTATIONEXPORTPROCESSSTATUSID]
    left outer join @EXPORTPROCESSOUTPUT [EXPORTOUTPUTTABLE]
        on [EXPORTOUTPUTTABLE].[PARAMETERSETID] = [SEGMENTATIONEXPORTPROCESSSTATUS].[BUSINESSPROCESSPARAMETERSETID] 
    where [MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS].[PARAMETERSETID] = @MEMBERSHIPRENEWALEFFORTPROCESSID
        and (dbo.[UFN_SECURITY_APPUSER_GRANTED_BUSINESSPROCESSINSTANCE_IN_SYSTEMROLE](@CURRENTAPPUSERID, [MKTMEMBERSHIPRENEWALEFFORTPROCESSSTATUS].[PARAMETERSETID]) = 1)
        and (@STATUSCODE is null or [BUSINESSPROCESSSTATUS].[STATUSCODE] = @STATUSCODE)
    order by [BUSINESSPROCESSSTATUS].[STARTEDON] desc

    return 0;