USP_BBWORKFLOWCATALOG_CREATEORUPDATE

Creates or updates the BBWORKFLOWCATALOG table. Used by loadspec.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@NAME nvarchar(60) IN
@DESCRIPTION nvarchar(100) IN
@SPECXML xml IN
@RELATIVEURL nvarchar(1024) IN
@CHANGEAGENTID uniqueidentifier IN
@DATAFORMINSTANCECATALOGID uniqueidentifier IN
@AUXSERVICENAME nvarchar(126) IN

Definition

Copy


CREATE procedure dbo.USP_BBWORKFLOWCATALOG_CREATEORUPDATE

@ID uniqueidentifier ,
@NAME nvarchar(60),
@DESCRIPTION nvarchar(100),
@SPECXML xml,

@RELATIVEURL nvarchar(1024),

@CHANGEAGENTID uniqueidentifier=null,

@DATAFORMINSTANCECATALOGID uniqueidentifier=null,

@AUXSERVICENAME nvarchar(126) = ''


as

set nocount on;

    if @RELATIVEURL is null or @RELATIVEURL = ''
        begin
            raiserror ('Relative url was missing or blank', 16,1);
            return 4;
        end

if @NAME is null or @NAME = ''
        begin
            raiserror ('Name was missing or blank', 16,1);
            return 5;
        end

    if @DESCRIPTION is null or @DESCRIPTION = ''
        begin
            raiserror ('Description was missing or blank', 16,1);
            return 6;
        end


    declare @ExistingID uniqueidentifier;

    if @ID is null
        begin
          select @ExistingID = ID from dbo.BBWORKFLOWCATALOG where NAME = @NAME;
          set @ID = @ExistingID;
        end
    else
        select @ExistingID = ID from dbo.BBWORKFLOWCATALOG where ID = @ID;


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

    declare @date datetime;
    set @date = getDate();

    if @AUXSERVICENAME is null
    set @AUXSERVICENAME = '';

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

            insert into dbo.BBWORKFLOWCATALOG
                (ID, [NAME], [DESCRIPTION], SPECXML,  ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED,RELATIVEURL,DATAFORMINSTANCECATALOGID,AUXSERVICENAME)
            values 
                (@ID, @NAME, @DESCRIPTION, @SPECXML, @CHANGEAGENTID, @CHANGEAGENTID, @date, @date,@RELATIVEURL,@DATAFORMINSTANCECATALOGID,@AUXSERVICENAME);
        end
    else
        begin
            update dbo.BBWORKFLOWCATALOG
                set [NAME] = @NAME,
                    [DESCRIPTION] = @DESCRIPTION,
                    SPECXML = @SPECXML,

                    RELATIVEURL=@RELATIVEURL,
                    DATAFORMINSTANCECATALOGID = @DATAFORMINSTANCECATALOGID,
                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @date,
          AUXSERVICENAME = @AUXSERVICENAME

                where ID = @ID ;
        end

    if @@rowcount=0 return 3;

    return 0;