USP_DATAFORMTEMPLATE_EDIT_BATCHWORKFLOWSTATE2

The save procedure used by the edit dataform template "Batch Workflow State Edit Form 2".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@NAME nvarchar(200) IN Name
@ALLOWCOMMIT bit IN Allow batch to be committed when in this state
@ISINITIALSTATE bit IN This is the initial state for the workflow
@ALLOWEDIT bit IN Allow batch to be edited in this state
@OVERDUEIN tinyint IN Days before batch is overdue
@PERMISSIONS xml IN
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_BATCHWORKFLOWSTATE2
(
    @ID uniqueidentifier,
    @NAME nvarchar(200),
    @ALLOWCOMMIT bit,
    @ISINITIALSTATE bit,
    @ALLOWEDIT bit,
    @OVERDUEIN tinyint,
    @PERMISSIONS xml,
    @CHANGEAGENTID uniqueidentifier = null                        
)
as
set nocount on;

begin try
    declare @CHANGEDATE datetime;
    set @CHANGEDATE = getdate();

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

    if @ISINITIALSTATE = 1 
        begin

            declare @BATCHWORKFLOWID uniqueidentifier;
            select @BATCHWORKFLOWID = BATCHWORKFLOWID from dbo.BATCHWORKFLOWSTATE where ID = @ID;
            if exists(select ID from dbo.BATCHWORKFLOWSTATE where ID <> @ID and BATCHWORKFLOWID = @BATCHWORKFLOWID and ISINITIALSTATE = 1)
                update dbo.BATCHWORKFLOWSTATE set ISINITIALSTATE = 0 where BATCHWORKFLOWID = @BATCHWORKFLOWID
        end

    if @OVERDUEIN is null
        set @OVERDUEIN = 0;

    update dbo.BATCHWORKFLOWSTATE
        set NAME = @NAME,
            ALLOWCOMMIT = @ALLOWCOMMIT,
            ISINITIALSTATE = @ISINITIALSTATE,
            ALLOWEDIT = @ALLOWEDIT,
            OVERDUEIN = @OVERDUEIN,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CHANGEDATE
    where ID = @ID;

    exec dbo.USP_BATCHWORKFLOWSTATE_GETSYSTEMROLEPERMISSIONS_UPDATEFROMXML @ID, @PERMISSIONS, @CHANGEAGENTID;

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

return 0;