USP_BATCHWORKFLOW_CREATEDEFAULTWORKFLOW

Creates default batch workflows.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@BATCHNAME nvarchar(100) IN
@BATCHTYPECATALOGID uniqueidentifier IN
@INITIALSTATENAME nvarchar(100) IN
@CHANGEAGENTID uniqueidentifier IN
@EDITABLESTATENAME nvarchar(100) IN

Definition

Copy


            CREATE procedure dbo.USP_BATCHWORKFLOW_CREATEDEFAULTWORKFLOW
                (
                    @ID uniqueidentifier, 
                    @BATCHNAME nvarchar(100), 
                    @BATCHTYPECATALOGID uniqueidentifier, 
                    @INITIALSTATENAME nvarchar(100), 
                    @CHANGEAGENTID uniqueidentifier, 
                    @EDITABLESTATENAME nvarchar(100) = ''
                )
                as
                begin 
                    set nocount on;

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

                    declare @REVIEWBATCH bit;
                    declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;

                    select 
                        @REVIEWBATCH = coalesce(SPECXML.value('declare namespace batchType="bb_appfx_batchtype";(/batchType:BatchTypeSpec/@UseReviewWorkflow)[1]', 'bit' ),0)
                    from 
                        dbo.BATCHTYPECATALOG 
                    where 
                        ID = @BATCHTYPECATALOGID;

                    select
                        @BATCHNUMBERINGSCHEMEID = ID
                    from
                        dbo.BATCHNUMBERINGSCHEME
                    where
                        NAME = @BATCHNAME;

                    if @BATCHNUMBERINGSCHEMEID is null
                    begin
                        set @BATCHNUMBERINGSCHEMEID = newid();
                        insert into dbo.BATCHNUMBERINGSCHEME
                            (ID, [NAME], ADDEDBYID, CHANGEDBYID) 
                        values
                            (@BATCHNUMBERINGSCHEMEID, @BATCHNAME, @CHANGEAGENTID, @CHANGEAGENTID);
                    end

                    if @REVIEWBATCH = 0
                        begin
                            insert into dbo.BATCHWORKFLOW 
                                (ID, [NAME], BATCHTYPECATALOGID, BATCHNUMBERINGSCHEMEID, ADDEDBYID, CHANGEDBYID) 
                            values 
                                (@ID, @BATCHNAME, @BATCHTYPECATALOGID, @BATCHNUMBERINGSCHEMEID, @CHANGEAGENTID, @CHANGEAGENTID);

                            insert into dbo.BATCHWORKFLOWSTATE
                                ([NAME], BATCHWORKFLOWID, ISINITIALSTATE, ALLOWCOMMIT, ALLOWEDIT, ADDEDBYID, CHANGEDBYID) 
                            values 
                                (@INITIALSTATENAME, @ID, 1, 1, 1, @CHANGEAGENTID, @CHANGEAGENTID);
                        end;
                    else
                        begin
                            declare @INITIALSTATEID uniqueidentifier;
                            declare @EDITABLESTATEID uniqueidentifier;

                            set @INITIALSTATEID = newid();
                            set @EDITABLESTATEID = newid();

                            insert into dbo.BATCHWORKFLOW 
                                (ID, [NAME], BATCHTYPECATALOGID, BATCHNUMBERINGSCHEMEID, ADDEDBYID, CHANGEDBYID) 
                            values 
                                (@ID, @BATCHNAME, @BATCHTYPECATALOGID, @BATCHNUMBERINGSCHEMEID, @CHANGEAGENTID, @CHANGEAGENTID);

                            insert into dbo.BATCHWORKFLOWSTATE
                                (ID, [NAME], BATCHWORKFLOWID, ISINITIALSTATE, ALLOWCOMMIT, ALLOWEDIT, ADDEDBYID, CHANGEDBYID) 
                            values 
                                (@INITIALSTATEID, @INITIALSTATENAME, @ID, 1, 0, 0, @CHANGEAGENTID, @CHANGEAGENTID);

                            if len(@EDITABLESTATENAME) > 0 begin
                                insert into dbo.BATCHWORKFLOWSTATE(ID, [NAME], BATCHWORKFLOWID, ISINITIALSTATE, ALLOWCOMMIT, ALLOWEDIT, ADDEDBYID, CHANGEDBYID) 
                                    values (@EDITABLESTATEID, @EDITABLESTATENAME, @ID, 0, 1, 1, @CHANGEAGENTID, @CHANGEAGENTID);

                                insert into dbo.BATCHWORKFLOWTASK(BATCHWORKFLOWSTATEID, NEXTBATCHWORKFLOWSTATEID, NAME, BATCHWORKFLOWID, ADDEDBYID, CHANGEDBYID)
                                    values(@INITIALSTATEID, @EDITABLESTATEID, @EDITABLESTATENAME, @ID, @CHANGEAGENTID, @CHANGEAGENTID);
                            end
                        end;        
                end