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;