USP_MKTSEGMENTATIONACTIVATEPROCESS_SAVE
Saves information about marketing efforts to be activated.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@RUNSEGMENTATIONSEGMENTCALCULATEPROCESS | bit | IN | |
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS | bit | IN | |
@CACHESOURCEANALYSISRULEDATA | bit | IN | |
@RUNMARKETINGEXCLUSIONSREPORT | bit | IN | |
@EXPORTAFTERACTIVATE | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONACTIVATEPROCESS_SAVE]
(
@SEGMENTATIONID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@RUNSEGMENTATIONSEGMENTCALCULATEPROCESS bit = 1,
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS bit = 0,
@CACHESOURCEANALYSISRULEDATA bit = 1,
@RUNMARKETINGEXCLUSIONSREPORT bit = 1,
@EXPORTAFTERACTIVATE bit = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
if @RUNSEGMENTATIONSEGMENTCALCULATEPROCESS = 0 set @RUNSEGMENTATIONSEGMENTREFRESHPROCESS = 0;
declare @ACTIVATEOPTIONSLOCKED bit = 0;
declare @CACHESOURCEANALYSISRULEDATAACTIVATELOCKED bit = 0;
declare @EXPORTAFTERACTIVATELOCKED bit = 0;
/* Get template locked activation settings */
if exists(select top 1 1 from dbo.[MKTCOMMUNICATIONTEMPLATE] where [MKTSEGMENTATIONID] = @SEGMENTATIONID)
begin
select
@ACTIVATEOPTIONSLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[ACTIVATEOPTIONSLOCKED],
@EXPORTAFTERACTIVATELOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[EXPORTAFTERACTIVATELOCKED],
@CACHESOURCEANALYSISRULEDATAACTIVATELOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[CACHESOURCEANALYSISRULEDATAACTIVATELOCKED]
from dbo.[MKTCOMMUNICATIONTEMPLATE]
inner join dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULT] on [MKTCOMMUNICATIONTEMPLATEDEFAULT].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]
where [MKTSEGMENTATIONID] = @SEGMENTATIONID;
end
if exists(select 1 from dbo.[MKTSEGMENTATIONACTIVATEPROCESS] where [SEGMENTATIONID] = @SEGMENTATIONID)
/* Update the existing row */
update dbo.[MKTSEGMENTATIONACTIVATEPROCESS] set
[RUNSEGMENTATIONSEGMENTCALCULATEPROCESS] = case when @ACTIVATEOPTIONSLOCKED = 1 then [RUNSEGMENTATIONSEGMENTCALCULATEPROCESS] else @RUNSEGMENTATIONSEGMENTCALCULATEPROCESS end,
[RUNSEGMENTATIONSEGMENTREFRESHPROCESS] = case when @ACTIVATEOPTIONSLOCKED = 1 then [RUNSEGMENTATIONSEGMENTREFRESHPROCESS] else @RUNSEGMENTATIONSEGMENTREFRESHPROCESS end,
[CACHESOURCEANALYSISRULEDATA] = case when @CACHESOURCEANALYSISRULEDATAACTIVATELOCKED = 1 then [CACHESOURCEANALYSISRULEDATA] else @CACHESOURCEANALYSISRULEDATA end,
[RUNMARKETINGEXCLUSIONSREPORT] = case when @ACTIVATEOPTIONSLOCKED = 1 then [RUNMARKETINGEXCLUSIONSREPORT] else @RUNMARKETINGEXCLUSIONSREPORT end,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [SEGMENTATIONID] = @SEGMENTATIONID;
else
/* Insert a new row */
insert into dbo.[MKTSEGMENTATIONACTIVATEPROCESS] (
[ID],
[SEGMENTATIONID],
[RUNSEGMENTATIONSEGMENTCALCULATEPROCESS],
[RUNSEGMENTATIONSEGMENTREFRESHPROCESS],
[CACHESOURCEANALYSISRULEDATA],
[RUNMARKETINGEXCLUSIONSREPORT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
newid(),
@SEGMENTATIONID,
@RUNSEGMENTATIONSEGMENTCALCULATEPROCESS,
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS,
@CACHESOURCEANALYSISRULEDATA,
@RUNMARKETINGEXCLUSIONSREPORT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
if @EXPORTAFTERACTIVATE is not null
/* Update export settings */
update dbo.[MKTSEGMENTATION]
set
[RUNACTIVATEANDEXPORT] = case when @EXPORTAFTERACTIVATELOCKED = 1 then [RUNACTIVATEANDEXPORT] else @EXPORTAFTERACTIVATE end,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @SEGMENTATIONID;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;