USP_DATAFORMINSTANCE_CREATEORUPDATE_SP

Create or update data form default instance with a stored procedure implementation

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@FORMNAME nvarchar(60) IN
@DESCRIPTION nvarchar(1000) IN
@FORMDEFXML xml IN
@TEMPLATEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@SPECUINAME nvarchar(60) IN
@MARTKEY nvarchar(255) IN

Definition

Copy


CREATE procedure [dbo].[USP_DATAFORMINSTANCE_CREATEORUPDATE_SP]
    @ID uniqueidentifier = null output
    @FORMNAME nvarchar(60),
    @DESCRIPTION nvarchar(1000) = '',
    @FORMDEFXML xml,
    @TEMPLATEID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @SPECUINAME nvarchar(60) = N'',
  @MARTKEY nvarchar(255) = null

as

set nocount on;

if @SPECUINAME is null
    set @SPECUINAME = N'';

if @MARTKEY = ''
    set @MARTKEY = null;

declare @ExistingID uniqueidentifier;

if @ID is null
    begin
      select @ExistingID = [ID] from dbo.[DATAFORMINSTANCECATALOG] where [FORMNAME] = @FORMNAME;
      set @ID = @ExistingID;
    end
else
    select @ExistingID = [ID] from dbo.[DATAFORMINSTANCECATALOG] where [ID] = @ID;

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


if @ExistingID is null 

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

        insert into dbo.[DATAFORMINSTANCECATALOG] ([ID], [FORMNAME], [DESCRIPTION], [FORMUIXML], [DATAFORMTEMPLATECATALOGID], [ADDEDBYID], [CHANGEDBYID], [SPECUINAME], [MARTKEY])
            values (@ID, @FORMNAME, @DESCRIPTION, @FORMDEFXML, @TEMPLATEID, @CHANGEAGENTID, @CHANGEAGENTID, @SPECUINAME, @MARTKEY);

    end

else

    update dbo.[DATAFORMINSTANCECATALOG] 
        set [FORMNAME] = @FORMNAME,
            [DESCRIPTION] = @DESCRIPTION
            [FORMUIXML] = @FORMDEFXML,
            [CHANGEDBYID] = @CHANGEAGENTID,
            [DATECHANGED] = getdate(),
            [SPECUINAME] = @SPECUINAME,
      [MARTKEY] = @MARTKEY
        where [ID] = @ExistingID;

if @@error <> 0 return 1;

if @MARTKEY is null
  exec dbo.[USP_DATAFORMINSTANCE_CREATEORUPDATEPROCEDURES] @ID;

if @@error <> 0 return 2;

return 0;