USP_MKTSOURCEANALYSISRULEFIELDS_REMOVEFIELDS

Parameters

Parameter Parameter Type Mode Description
@SOURCEANALYSISRULEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@VALIDFIELDS xml IN

Definition

Copy


create procedure dbo.[USP_MKTSOURCEANALYSISRULEFIELDS_REMOVEFIELDS]
(
  @SOURCEANALYSISRULEID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @VALIDFIELDS xml
)
as
  set nocount on;

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

    --Cache current context information

    declare @CONTEXTCACHE varbinary(128);
    set @CONTEXTCACHE = CONTEXT_INFO();

    --Set CONTEXT_INFO to @CHANGEAGENTID

    if @CHANGEAGENTID is not null
      set CONTEXT_INFO @CHANGEAGENTID;

    --Remove any source analysis rules that were deleted in the UI

    delete from dbo.[MKTSOURCEANALYSISRULEFIELDS]
    where [MKTSOURCEANALYSISRULEFIELDS].[SOURCEANALYSISRULEID] = @SOURCEANALYSISRULEID
      and not exists (select 1
                      from @VALIDFIELDS.nodes('//FIELDLIST/ITEM') as [VALIDFIELDS](Item)
                      where [VALIDFIELDS].Item.value('ID[1]', 'uniqueidentifier') = [MKTSOURCEANALYSISRULEFIELDS].[ID]);

    --Reset CONTEXT_INFO to previous value

    if not @CONTEXTCACHE is null
      set CONTEXT_INFO @CONTEXTCACHE;

  end try

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

  return 0;