USP_BBWORKFLOWINBOX_CREATEORUPDATE

Creates or updates the BBWORKFLOWINBOX table. Used by loadspec.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@NAME nvarchar(200) IN
@DESCRIPTION nvarchar(2048) IN
@SPECXML xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_BBWORKFLOWINBOX_CREATEORUPDATE

@ID uniqueidentifier ,
@NAME nvarchar(200),
@DESCRIPTION nvarchar(2048),
@SPECXML xml,

@CHANGEAGENTID uniqueidentifier=null

as

set nocount on;


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.BBWORKFLOWINBOX where NAME = @NAME;
          set @ID = @ExistingID;
        end
    else
        select @ExistingID = ID from dbo.BBWORKFLOWINBOX 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.BBWORKFLOWINBOX
                (ID, [NAME], [DESCRIPTION], SPECXML,  ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values 
                (@ID, @NAME, @DESCRIPTION, @SPECXML, @CHANGEAGENTID, @CHANGEAGENTID, @date, @date);
        end
    else
        begin
            update dbo.BBWORKFLOWINBOX
                set [NAME] = @NAME,
                    [DESCRIPTION] = @DESCRIPTION,
                    SPECXML = @SPECXML,

                    CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @date

                where ID = @ID ;
        end

    if @@rowcount=0 return 3;

    return 0;