USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONSEGMENTREFRESHPROCESS_2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@RUNSEGMENTATIONSEGMENTREFRESHPROCESS bit IN
@CACHESOURCEANALYSISRULEDATA bit IN
@RUNMARKETINGEXCLUSIONSREPORT bit IN

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONSEGMENTREFRESHPROCESS_2]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @RUNSEGMENTATIONSEGMENTREFRESHPROCESS bit,
  @CACHESOURCEANALYSISRULEDATA bit,
  @RUNMARKETINGEXCLUSIONSREPORT bit
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

  begin try
    if @CHANGEAGENTID is null  
      exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

    set @CURRENTDATE = getdate();

    if exists(select 1 from dbo.[BUSINESSPROCESSSTATUS] where [STATUSCODE] = 4 and [BUSINESSPROCESSPARAMETERSETID] = @ID)
      raiserror('BBERR_ENQUEUED', 13, 1);

    declare @RUNSEGMENTATIONSEGMENTREFRESHPROCESSLOCKED bit = 0;
    declare @CACHESOURCEANALYSISRULEDATALOCKED bit = 0;
    declare @RUNMARKETINGEXCLUSIONSREPORTLOCKED bit = 0;
    declare @SEGMENTATIONID uniqueidentifier = (select [SEGMENTATIONID] from dbo.[MKTSEGMENTATIONSEGMENTCALCULATEPROCESS] where [ID] = @ID);

    /* Get template calculation locked settings */
    if exists(select top 1 1 from dbo.[MKTCOMMUNICATIONTEMPLATE] where [MKTSEGMENTATIONID] = @SEGMENTATIONID)
      begin

        select
          @RUNSEGMENTATIONSEGMENTREFRESHPROCESSLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[RUNSEGMENTATIONSEGMENTREFRESHPROCESSLOCKED],
          @CACHESOURCEANALYSISRULEDATALOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[CACHESOURCEANALYSISRULEDATALOCKED],
          @RUNMARKETINGEXCLUSIONSREPORTLOCKED = [MKTCOMMUNICATIONTEMPLATEDEFAULT].[RUNMARKETINGEXCLUSIONSREPORTLOCKED]
        from dbo.[MKTCOMMUNICATIONTEMPLATE]
        inner join dbo.[MKTCOMMUNICATIONTEMPLATEDEFAULT] on [MKTCOMMUNICATIONTEMPLATEDEFAULT].[COMMUNICATIONTEMPLATEID] = [MKTCOMMUNICATIONTEMPLATE].[ID]
        where [MKTCOMMUNICATIONTEMPLATE].[MKTSEGMENTATIONID] = @SEGMENTATIONID;

      end

    /* Don't allow overriding of locked values */
    update dbo.[MKTSEGMENTATIONSEGMENTCALCULATEPROCESS] set 
      [RUNSEGMENTATIONSEGMENTREFRESHPROCESS] = case when @RUNSEGMENTATIONSEGMENTREFRESHPROCESSLOCKED = 1 then [RUNSEGMENTATIONSEGMENTREFRESHPROCESS] else @RUNSEGMENTATIONSEGMENTREFRESHPROCESS end,
      [CACHESOURCEANALYSISRULEDATA] = case when @CACHESOURCEANALYSISRULEDATALOCKED = 1 then [CACHESOURCEANALYSISRULEDATA] else @CACHESOURCEANALYSISRULEDATA end,
      [RUNMARKETINGEXCLUSIONSREPORT] = case when @RUNMARKETINGEXCLUSIONSREPORTLOCKED = 1 then [RUNMARKETINGEXCLUSIONSREPORT] else @RUNMARKETINGEXCLUSIONSREPORT end,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;