USP_DATAFORMADDINCATALOG_CREATEORUPDATE

Creates or updates the given data form addin

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@NAME nvarchar(60) IN
@DESCRIPTION nvarchar(1000) IN
@DATAFORMINSTANCEID uniqueidentifier IN
@ASSEMBLYNAME nvarchar(128) IN
@CLASSNAME nvarchar(128) IN
@SEQUENCE int IN
@DATAFORMADDINSPECXML xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure [dbo].[USP_DATAFORMADDINCATALOG_CREATEORUPDATE]
    @ID uniqueidentifier = null output
    @NAME nvarchar(60),
    @DESCRIPTION nvarchar(1000) = '',
    @DATAFORMINSTANCEID uniqueidentifier,
    @ASSEMBLYNAME nvarchar(128),
    @CLASSNAME nvarchar(128),
    @SEQUENCE int = 0,
    @DATAFORMADDINSPECXML xml,
    @CHANGEAGENTID uniqueidentifier = null

as

set nocount on

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

if (@SEQUENCE = 0) or (@SEQUENCE is null)
    select @SEQUENCE = coalesce(max(SEQUENCE), -1) + 1 from dbo.DATAFORMADDINCATALOG where DATAFORMINSTANCEID = @DATAFORMINSTANCEID

declare @date datetime
set @date = getDate()

declare @ExistingID uniqueidentifier
if @ID is null
    begin
      select @ExistingID = ID from dbo.DATAFORMADDINCATALOG where [NAME] = @NAME
      set @ID = @ExistingID
    end
else
    select @ExistingID = ID from dbo.DATAFORMADDINCATALOG where ID = @ID

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

        insert into dbo.DATAFORMADDINCATALOG
        (ID, NAME, DESCRIPTION, DATAFORMINSTANCEID, ASSEMBLYNAME, CLASSNAME, SEQUENCE, DATAFORMADDINSPECXML, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values 
        (@ID, @NAME, @DESCRIPTION, @DATAFORMINSTANCEID, @ASSEMBLYNAME, @CLASSNAME, @SEQUENCE, @DATAFORMADDINSPECXML, @ChangeAgentID, @ChangeAgentID, @date, @date)        
    end

else
    update dbo.DATAFORMADDINCATALOG
        set NAME = @NAME,
            DESCRIPTION = @DESCRIPTION,
            DATAFORMINSTANCEID = @DATAFORMINSTANCEID,
            ASSEMBLYNAME = @ASSEMBLYNAME,
            CLASSNAME = @CLASSNAME,
            SEQUENCE = @SEQUENCE,
            DATAFORMADDINSPECXML = @DATAFORMADDINSPECXML,
            CHANGEDBYID=@CHANGEAGENTID,
            DATECHANGED=@date
        where ID = @ExistingID;

if @@rowcount=0 return 1;

return 0;