USP_MKTLIST_MARKINACTIVE

Executes the "List: Mark Inactive" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


create procedure dbo.[USP_MKTLIST_MARKINACTIVE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null
)
as
  set nocount on;

  declare @SEGMENTID uniqueidentifier;

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

    --Mark the list as "Inactive"...

    update dbo.[MKTLIST] set
      [ISINACTIVE] = 1,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = getdate()
    where [ID] = @ID;

    --Hide any query views that are visible for all list segments based on this list...

    declare SEGMENTLISTCURSOR cursor local fast_forward for
      select
        [MKTSEGMENT].[ID]
      from dbo.[MKTSEGMENT]
      inner join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
      inner join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID]
      where [MKTSEGMENTLIST].[LISTID] = @ID
      and [MKTSEGMENTLIST].[TYPECODE] = 0    --Imported

      and [MKTSEGMENTLIST].[STATUSCODE] = 3  --Active

      and [QUERYVIEWCATALOG].[ROOTOBJECT] = 1;

    open SEGMENTLISTCURSOR;
    fetch next from SEGMENTLISTCURSOR into @SEGMENTID;

    while (@@FETCH_STATUS = 0)
    begin
      exec dbo.[USP_MKTSEGMENTLIST_TOGGLEQUERYVIEWS] @SEGMENTID, 0, @CHANGEAGENTID;
      fetch next from SEGMENTLISTCURSOR into @SEGMENTID;
    end

    close SEGMENTLISTCURSOR;
    deallocate SEGMENTLISTCURSOR;
  end try

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

  return 0;