USP_DATAFORMTEMPLATE_VIEW_EFFORTEXCLUSIONSREPORT_EXPRESSION

The load procedure used by the view dataform template "Marketing Effort Exclusions Report Expression View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@MAILINGNAME nvarchar(100) INOUT Marketing effort
@SEGMENTCALCULATEPROCESSSTATUSID uniqueidentifier INOUT Marketing effort segment counts calculate process status ID

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_VIEW_EFFORTEXCLUSIONSREPORT_EXPRESSION]
(
  @ID uniqueidentifier,
  @DATALOADED bit = 0 output,
  @MAILINGNAME nvarchar(100) = null output,
  @SEGMENTCALCULATEPROCESSSTATUSID uniqueidentifier = null output
)
as
  set nocount on;

  declare @ENDEDON datetime;

  set @DATALOADED = 0;

  select
    @DATALOADED = 1,
    @MAILINGNAME = [MKTSEGMENTATION].[NAME],
    --If the mailing is active, then get the use the current date so that we find the most recent status ID below...

    @ENDEDON = (case when [MKTSEGMENTATION].[ACTIVE] = 1 then getdate() else [BUSINESSPROCESSSTATUS].[ENDEDON] end)
  from dbo.[MKTSEGMENTATION]
  left join dbo.[MKTSEGMENTATIONEXCLUSIONSPROCESS] on [MKTSEGMENTATIONEXCLUSIONSPROCESS].[SEGMENTATIONID] = [MKTSEGMENTATION].[ID]
  left join dbo.[MKTSEGMENTATIONEXCLUSIONSPROCESSSTATUS] on [MKTSEGMENTATIONEXCLUSIONSPROCESSSTATUS].[PARAMETERSETID] = [MKTSEGMENTATIONEXCLUSIONSPROCESS].[ID]
  left join dbo.[BUSINESSPROCESSSTATUS] on [BUSINESSPROCESSSTATUS].[ID] = [MKTSEGMENTATIONEXCLUSIONSPROCESSSTATUS].[ID]
  where [MKTSEGMENTATION].[ID] = @ID;

  if @DATALOADED = 1 and @ENDEDON is not null
    --Grab the most recent segment counts status ID that was started before the exclusions process since the output table is now linked to the segment counts process...

    select top 1
      @SEGMENTCALCULATEPROCESSSTATUSID = [BUSINESSPROCESSSTATUS].[ID]
    from dbo.[MKTSEGMENTATIONSEGMENTCALCULATEPROCESS]
    inner join dbo.[MKTSEGMENTATIONSEGMENTCALCULATEPROCESSSTATUS] on [MKTSEGMENTATIONSEGMENTCALCULATEPROCESSSTATUS].[PARAMETERSETID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[ID]
    inner join dbo.[BUSINESSPROCESSSTATUS] on [BUSINESSPROCESSSTATUS].[ID] = [MKTSEGMENTATIONSEGMENTCALCULATEPROCESSSTATUS].[ID]
    where [MKTSEGMENTATIONSEGMENTCALCULATEPROCESS].[SEGMENTATIONID] = @ID
    and [BUSINESSPROCESSSTATUS].[STATUSCODE] = 0
    and [BUSINESSPROCESSSTATUS].[STARTEDON] < @ENDEDON
    order by [BUSINESSPROCESSSTATUS].[ENDEDON] desc;

  set @SEGMENTCALCULATEPROCESSSTATUSID = coalesce(@SEGMENTCALCULATEPROCESSSTATUSID, '00000000-0000-0000-0000-000000000000');

  return 0;