USP_EXCHANGEDOWNLOADPROCESS_CREATENEWBATCH

Creates a new batch to be used by the Exchange download process.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@BATCHNUMBER nvarchar(100) IN
@OWNERID uniqueidentifier IN
@BATCHTEMPLATEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_EXCHANGEDOWNLOADPROCESS_CREATENEWBATCH  
            (
                @ID uniqueidentifier = null output,
                @BATCHNUMBER nvarchar(100), -- Bug 31116: Moved incoming value for @BATCHNUMBER to the DESCRIPTION field, replaced BATCHNUMBER with numbering scheme

                @OWNERID uniqueidentifier = null,                        
                @BATCHTEMPLATEID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null
            ) 
            as            

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

                declare @FORMDEFINITIONXML xml;
                declare @BATCHWORKFLOWID uniqueidentifier;

                select 
                    @FORMDEFINITIONXML = BATCHTEMPLATE.FORMDEFINITIONXML, 
                    @BATCHWORKFLOWID = BATCHTEMPLATE.BATCHWORKFLOWID 
                from 
                    dbo.BATCHTEMPLATE 
                where 
                    BATCHTEMPLATE.ID = @BATCHTEMPLATEID;

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

                declare @BATCHWORKFLOWSTATEID uniqueidentifier;
                set @BATCHWORKFLOWSTATEID = null;

                if not @BATCHWORKFLOWID is null begin
                    select 
                        @BATCHWORKFLOWSTATEID = ID 
                    from 
                        dbo.BATCHWORKFLOWSTATE 
                    where 
                        BATCHWORKFLOWID = @BATCHWORKFLOWID and 
                        ISINITIALSTATE = 1;
                end

        declare @ACTUALNUMBER nvarchar(100)
        declare @BATCHTYPECATALOGID uniqueidentifier
        declare @BATCHNUMBERINGSCHEMEID uniqueidentifier

        select
            @BATCHTYPECATALOGID = BATCHTEMPLATE.BATCHTYPECATALOGID,
            @BATCHWORKFLOWID = BATCHTEMPLATE.BATCHWORKFLOWID,
            @BATCHNUMBERINGSCHEMEID = BATCHTEMPLATE.BATCHNUMBERINGSCHEMEID
        from 
            dbo.BATCHTEMPLATE
        where
            BATCHTEMPLATE.ID = @BATCHTEMPLATEID;

        if @BATCHNUMBERINGSCHEMEID is null
          raiserror('ERR_NUMBERINGSCHEME_NOTDEFINED', 13, 1);

        exec dbo.USP_BATCHNUMBERINGSCHEME_GETNEXTBATCHNUMBER_ATOMIC @ID = @BATCHNUMBERINGSCHEMEID,
          @BATCHTEMPLATEID = @BATCHTEMPLATEID,
          @BATCHNUMBER = @ACTUALNUMBER output,
          @CHANGEAGENTID = @CHANGEAGENTID;

          exec USP_BATCH2_ADD @ID = @ID,
           @BATCHNUMBER = @ACTUALNUMBER,
           @DESCRIPTION = @BATCHNUMBER,
           @OWNERID = @OWNERID,
           @BATCHTEMPLATEID = @BATCHTEMPLATEID,
           @BATCHWORKFLOWSTATEID = @BATCHWORKFLOWSTATEID,
           @FORMDEFINITIONXML = @FORMDEFINITIONXML,
           @CHANGEAGENTID = @CHANGEAGENTID