USP_EXCHANGEDOWNLOADPROCESS_GETBATCHID
Returns the first valid batch id for the given batch owner and batch template id.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MAXROWCOUNT | int | IN | |
@BATCHTEMPLATEID | uniqueidentifier | IN | |
@OWNERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_EXCHANGEDOWNLOADPROCESS_GETBATCHID
(
@MAXROWCOUNT int,
@BATCHTEMPLATEID uniqueidentifier,
@OWNERID uniqueidentifier
)
as
set nocount on;
declare @BASETABLENAME nvarchar(128);
declare @SQL nvarchar(830);
select
@BASETABLENAME = BATCHTYPECATALOG.BASETABLENAME
from
dbo.BATCHTYPECATALOG
inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHTYPECATALOGID = BATCHTYPECATALOG.ID
where
BATCHTEMPLATE.ID = @BATCHTEMPLATEID;
set @SQL = 'select top 1
@BATCHID_OUT = BATCH.ID,
@COUNT_OUT = (select count(BATCHTABLE.ID) from dbo.' + @BASETABLENAME + ' as BATCHTABLE where BATCHTABLE.BATCHID = BATCH.ID)
from
dbo.BATCH
inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.ID = BATCH.BATCHTEMPLATEID
inner join dbo.BATCHWORKFLOWSTATE on BATCHWORKFLOWSTATE.ID = BATCH.BATCHWORKFLOWSTATEID
where
coalesce((select count(BATCHTABLE.ID) from dbo.' + @BASETABLENAME + ' as BATCHTABLE where BATCHTABLE.BATCHID = BATCH.ID), 0) < @MAXROWCOUNT_IN
and BATCHTEMPLATE.ID = @BATCHTEMPLATEID_IN
and BATCHWORKFLOWSTATE.ISINITIALSTATE = 1
and BATCH.APPUSERID = @OWNERID_IN
and BATCH.STATUSCODE = 0';
declare @PARAMETERS nvarchar(150);
set @PARAMETERS = '@BATCHTEMPLATEID_IN uniqueidentifier, @MAXROWCOUNT_IN int, @OWNERID_IN uniqueidentifier, @BATCHID_OUT uniqueidentifier output, @COUNT_OUT int output';
declare @BATCHID uniqueidentifier
declare @COUNT int
exec sp_executesql @SQL, @PARAMETERS, @BATCHTEMPLATEID_IN = @BATCHTEMPLATEID, @MAXROWCOUNT_IN = @MAXROWCOUNT, @OWNERID_IN = @OWNERID, @BATCHID_OUT = @BATCHID output, @COUNT_OUT = @COUNT output;
-- Have to do this so that StoredProcGen will be able to pick up return columns
select @BATCHID as BATCHID, @COUNT as COUNT