USP_DATAFORMTEMPLATE_ADD_GENERATECONSTITUENTUPDATEBATCHPROCESS

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@NAME nvarchar(100) IN
@IDSETREGISTERID uniqueidentifier IN
@BATCHTEMPLATEID uniqueidentifier IN
@BATCHNUMBER nvarchar(100) IN
@OVERRIDEBATCHNUMBER bit IN
@DESCRIPTION nvarchar(1000) IN
@OWNERID uniqueidentifier IN
@AUTOSAVEONROWCHANGE bit IN
@PROJECTEDNUMBEROFRECORDS int IN
@SITEID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_DATAFORMTEMPLATE_ADD_GENERATECONSTITUENTUPDATEBATCHPROCESS
(
        @ID uniqueidentifier = null output,
        @CURRENTAPPUSERID uniqueidentifier,
        @CHANGEAGENTID uniqueidentifier = null,
        @NAME nvarchar(100),
        @IDSETREGISTERID uniqueidentifier,
        @BATCHTEMPLATEID uniqueidentifier,
        @BATCHNUMBER nvarchar(100) = '',
        @OVERRIDEBATCHNUMBER bit = 0,
        @DESCRIPTION nvarchar(1000) = '',
        @OWNERID uniqueidentifier = null,
        @AUTOSAVEONROWCHANGE bit = 0,
        @PROJECTEDNUMBEROFRECORDS int = 0,
        @SITEID 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();

        declare @BATCHNUMBERINGSCHEMEID uniqueidentifier;
        declare @APPUSERID uniqueidentifier;
        declare @BATCHWORKFLOWSTATEID uniqueidentifier;


        if (@OVERRIDEBATCHNUMBER = 0 or @BATCHNUMBER is null or len(@BATCHNUMBER) = 0)
        begin
            select @BATCHNUMBERINGSCHEMEID = BATCHNUMBERINGSCHEMEID
            from dbo.BATCHTEMPLATE
            where ID = @BATCHTEMPLATEID;

            if @BATCHNUMBERINGSCHEMEID is null
                raiserror('ERR_NUMBERINGSCHEME_NOTDEFINED', 13, 1);
        end
        else
        begin
            if dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER(@CURRENTAPPUSERID, @BATCHTEMPLATEID) = 0
                raiserror('ERR_CANNOTCUSTOMIZE_NUMBER', 13, 1);

            if (select count(1) from dbo.BATCH where BATCHNUMBER = @BATCHNUMBER and BATCHTEMPLATEID = @BATCHTEMPLATEID) > 0
                raiserror('ERR_DUPLICATE_NUMBER', 13, 1);
        end

        if @OWNERID is null
            set @APPUSERID = @CURRENTAPPUSERID;
        else
            set @APPUSERID = @OWNERID;

        select 
                @BATCHWORKFLOWSTATEID = BATCHWORKFLOWSTATE.ID 
        from 
                dbo.BATCHTEMPLATE 
                inner join dbo.BATCHWORKFLOW on BATCHTEMPLATE.BATCHWORKFLOWID = BATCHWORKFLOW.ID
                inner join dbo.BATCHWORKFLOWSTATE on BATCHWORKFLOW.ID = BATCHWORKFLOWSTATE.BATCHWORKFLOWID
        where 
                BATCHTEMPLATE.ID = @BATCHTEMPLATEID
        and 
                ISINITIALSTATE = 1;

        if @BATCHWORKFLOWSTATEID is null
            raiserror('ERR_INVALIDWORKFLOW_DEFINED', 13, 1);

        begin try

            if (@SITEID is not null
            begin
                if dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, @SITEID) = 0 
                begin
                        raiserror ('ERR_SITE_NOACCESS',13,1);
                        return 1;
                end
            end

            insert into dbo.GENERATEBATCHPROCESSCUB
                (ID, NAME, IDSETREGISTERID, BATCHTEMPLATEID, BATCHNUMBER, OVERRIDEBATCHNUMBER, DESCRIPTION, APPUSERID, AUTOSAVEONROWCHANGE, PROJECTEDNUMBEROFRECORDS, 
                 ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (@ID, @NAME, @IDSETREGISTERID, @BATCHTEMPLATEID, @BATCHNUMBER, @OVERRIDEBATCHNUMBER, @DESCRIPTION, @APPUSERID, @AUTOSAVEONROWCHANGE, @PROJECTEDNUMBEROFRECORDS
                 @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);


            exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD @CHANGEAGENTID = @CHANGEAGENTID
                    @BUSINESSPROCESSCATALOGID = '44ccccea-9e4b-4935-9ab0-60c9f23a543d'
                    @BUSINESSPROCESSPARAMETERSETID = @ID
                    @OWNERID = @CURRENTAPPUSERID,
                    @SITEID = @SITEID;

        end try

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

        return 0