USP_GLOBALCHANGECATALOG_CREATEORUPDATE

Creates or updates global change definitions in the GlobalChangeCatalog table.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@PROCEDURENAME nvarchar(100) IN
@DESCRIPTION nvarchar(max) IN
@GLOBALCHANGESPECXML xml IN
@FORMMETADATAXML xml IN
@DISPLAYNAME nvarchar(100) IN
@CHANGEAGENTID uniqueidentifier IN
@GLOBALCHANGEFOLDER nvarchar(500) IN

Definition

Copy


            CREATE procedure dbo.USP_GLOBALCHANGECATALOG_CREATEORUPDATE
                    @ID uniqueidentifier = null output
                    @PROCEDURENAME nvarchar(100) = '',
                    @DESCRIPTION nvarchar(max) = '',
                    @GLOBALCHANGESPECXML xml, 
                    @FORMMETADATAXML xml,
                    @DISPLAYNAME nvarchar(100),
                    @CHANGEAGENTID uniqueidentifier = null,
                    @GLOBALCHANGEFOLDER nvarchar(500) = ''
                as

                set nocount on

                declare @ExistingID uniqueidentifier

                if @ID is null
                    begin
                      select @ExistingID = ID from dbo.GLOBALCHANGECATALOG where DISPLAYNAME = @DISPLAYNAME
                      set @ID = @ExistingID
                    end
                else
                    select @ExistingID = ID from dbo.GLOBALCHANGECATALOG where ID = @ID

                if @ChangeAgentID is null 
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @ChangeAgentID output

                declare @date datetime
                set @date = getDate()

                if @ExistingID is null 

                    begin    
                        if @ID is null set @ID = NewID()

                        insert into dbo.GLOBALCHANGECATALOG
                            (ID, PROCEDURENAME, DESCRIPTION, GLOBALCHANGESPECXML, FORMMETADATAXML, DISPLAYNAME, GLOBALCHANGEFOLDER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values 
                            (@ID, @PROCEDURENAME, @DESCRIPTION, @GLOBALCHANGESPECXML, @FORMMETADATAXML, @DISPLAYNAME, @GLOBALCHANGEFOLDER, @CHANGEAGENTID, @CHANGEAGENTID, @DATE, @DATE)        
                    end

                else
                    update 
                        dbo.GLOBALCHANGECATALOG
                    set 
                        PROCEDURENAME = @PROCEDURENAME,
                        DESCRIPTION = @DESCRIPTION,
                        GLOBALCHANGESPECXML = @GLOBALCHANGESPECXML,
                        FORMMETADATAXML = @FORMMETADATAXML
                        DISPLAYNAME = @DISPLAYNAME,    
                        GLOBALCHANGEFOLDER = @GLOBALCHANGEFOLDER,
                        CHANGEDBYID = @CHANGEAGENTID,                            
                        DATECHANGED = @DATE
                    where 
                        ID = @ID;

                if @@rowcount = 0 return 1;

                return 0;