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;