USP_MKTMEMBERSHIPMAILINGPROCESS_ROLLBACK

Rolls back the changes made while processing membership renewal efforts, if the process fails.

Parameters

Parameter Parameter Type Mode Description
@MKTMEMBERSHIPMAILINGPROCESSSTATUSID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTMEMBERSHIPMAILINGPROCESS_ROLLBACK]
(
  @MKTMEMBERSHIPMAILINGPROCESSSTATUSID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null
)
as
  set nocount on;

  declare @RECORDSOURCEID uniqueidentifier;
  declare @SQL as nvarchar(max);
  declare @CONTEXTCACHE varbinary(128);
  declare @MKTMEMBERSHIPMAILINGPROCESSSEGMENTATIONID uniqueidentifier;
  declare @SEGMENTATIONID uniqueidentifier;

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

    -- remove the mailing, if one was created


    select
      @MKTMEMBERSHIPMAILINGPROCESSSEGMENTATIONID = [ID],
      @SEGMENTATIONID = [SEGMENTATIONID]
    from dbo.[MKTMEMBERSHIPMAILINGPROCESSSEGMENTATION]
    where [MEMBERSHIPMAILINGPROCESSSTATUSID] = @MKTMEMBERSHIPMAILINGPROCESSSTATUSID;

    if @MKTMEMBERSHIPMAILINGPROCESSSEGMENTATIONID is not null
      begin
        exec dbo.[USP_MKTMEMBERSHIPMAILINGPROCESSSEGMENTATION_DELETEBYID_WITHCHANGEAGENTID] @MKTMEMBERSHIPMAILINGPROCESSSEGMENTATIONID, @CHANGEAGENTID;

        if @SEGMENTATIONID is not null
          exec dbo.[USP_MKTSEGMENTATION_DELETE] @SEGMENTATIONID, @CHANGEAGENTID;
      end
  end try

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

  return 0;