USP_DATAFORMTEMPLATE_ADD_WORKFLOW_INBOX_ASSIGNMENT

The save procedure used by the add dataform template "Workflow Inbox Assignment Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@WORKFLOWINBOXID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@ASSIGNMENTTYPECODE tinyint IN Assignment type
@APPUSERID uniqueidentifier IN User
@SYSTEMROLEID uniqueidentifier IN Role

Definition

Copy

CREATE procedure [dbo].[USP_DATAFORMTEMPLATE_ADD_WORKFLOW_INBOX_ASSIGNMENT]

    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @WORKFLOWINBOXID uniqueidentifier,
    @ASSIGNMENTTYPECODE tinyint = 0,
    @APPUSERID uniqueidentifier = null,
    @SYSTEMROLEID uniqueidentifier = null

as

set nocount on;

if @ID is null
    set @ID = newid();

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

declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();

begin try

    insert into dbo.BBWORKFLOWINBOXASSIGNMENT
        (ID, BBWORKFLOWINBOXID, ASSIGNMENTTYPECODE, APPUSERID, SYSTEMROLEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    values
        (@ID, @WORKFLOWINBOXID, @ASSIGNMENTTYPECODE, @APPUSERID, @SYSTEMROLEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end try

begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
end catch


begin try
    -- If assigning to a role make sure the My Workflow Inbox task is also granted to the role as a convenience.


    if (@ASSIGNMENTTYPECODE=0) AND (@SYSTEMROLEID is not null) and (@SYSTEMROLEID <> '00000000-0000-0000-0000-000000000000')
    BEGIN
        declare @TASKID_MYWORKFLOWINBOX uniqueidentifier = '8D2F3ED9-AA57-452A-B662-E9120FFC17DD';

        declare @TASKEXISTS bit = 0;

        select @TASKEXISTS=1 from dbo.TASKCATALOG as TC where TC.ID=@TASKID_MYWORKFLOWINBOX;
        if @TASKEXISTS=1
        BEGIN
            if not exists (select  SRT.ID from dbo.SYSTEMROLETASK AS SRT WHERE SRT.TASKID=@TASKID_MYWORKFLOWINBOX AND SRT.SYSTEMROLEID=@SYSTEMROLEID)
            BEGIN
                insert into [SYSTEMROLETASK] 
                ([SYSTEMROLEID], 
                [DISPLAYONHOMEPAGE],
                [TASKID],                
                ADDEDBYID, 
                CHANGEDBYID, 
                DATEADDED, 
                DATECHANGED)
                values (@SYSTEMROLEID,1,@TASKID_MYWORKFLOWINBOX,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);

            END

        END

    END

end try

begin catch
    --eat any errors trying to assign the task.
    return 500;
end catch


return 0;