USP_DATALIST_OPENBATCHES

Returns a list of all batches

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@BATCHDESIGN uniqueidentifier IN Batch template
@CATEGORY nvarchar(100) IN Category
@OWNER uniqueidentifier IN Owner

Definition

Copy


CREATE procedure dbo.USP_DATALIST_OPENBATCHES(@CURRENTAPPUSERID uniqueidentifier,@BATCHDESIGN uniqueidentifier = null,@CATEGORY nvarchar(100) = '', @OWNER uniqueidentifier = null )
with execute as owner
as                

declare @sql nvarchar(max),
        @paramlist nvarchar(4000);

select @sql = ' declare @DATE datetime
                set @DATE = getdate(); 

                with cte_name(ID, LEVELS, ORIGINATINGTEMPLATEID, ORIGINATINGTEMPLATENAME, LOOKUPID)
                as
                (
                  select bt.ID, 0 as levels, bt.ID, bt2.NAME,  bt2.ID
                  from dbo.BATCHTEMPLATE bt left outer join
                     dbo.BATCHTEMPLATE bt2 on bt.ORIGINATINGTEMPLATEID = bt2.ID    
                  union all
                  select n.ID, n.LEVELS + 1, bt3.ID, bt3.NAME, bt3.ORIGINATINGTEMPLATEID
                  from cte_name n inner join
                     dbo.BATCHTEMPLATE bt3 on n.LOOKUPID = bt3.ID
                )
                select 
                    [BATCH].[ID]
                  , [BATCH].[BATCHNUMBER]
                  , [BATCH].[DESCRIPTION]
                  , (select case when DISPLAYNAME = '''' then USERNAME else DISPLAYNAME end from dbo.APPUSER where ID = BATCH.APPUSERID) as PROCESSOR
                  , case
                      when [BATCH].[STATUSCODE] = 3 then [BATCH].[STATUS]
                      else BATCHWORKFLOWSTATE.NAME
                    end as STATUS
                  , [BATCHTYPECATALOG].[CATEGORY]
                  , [BATCH].[COMMENTS]
                  , [BATCH].[DATECHANGED]
                  , dbo.UFN_BATCH_GETVALIDATIONREPORTID(BATCH.ID) REPORTID
                  , dbo.UFN_BATCHWORKFLOWSTATE_TASKSAVAILABLE(BATCH.BATCHWORKFLOWSTATEID) TASKSAVAILABLE
                  , (select ALLOWCOMMIT from dbo.BATCHWORKFLOWSTATE where BATCHWORKFLOWSTATE.ID = BATCH.BATCHWORKFLOWSTATEID) ENABLECOMMIT
                  , (select ALLOWEDIT from dbo.BATCHWORKFLOWSTATE where BATCHWORKFLOWSTATE.ID = BATCH.BATCHWORKFLOWSTATEID) ENABLEEDIT
                  , coalesce(BATCHTYPECATALOG.BATCHDELETERECORDOPERATIONID, ''5345164C-DD4F-4B6E-9CF1-10E1B25E3F4F'') BATCHDELETERECORDOPERATIONID
                  , case when BATCHWORKFLOWSTATE.OVERDUEIN > 0 and datediff(day, (select MAX(BATCHWORKFLOWSTATUS.DATEADDED) from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID), @DATE) >= BATCHWORKFLOWSTATE.OVERDUEIN then 
                    1
                    else 
                    0
                    end
                  , case when BATCHWORKFLOWSTATE.OVERDUEIN > 0 and datediff(day, (select MAX(BATCHWORKFLOWSTATUS.DATEADDED) from dbo.BATCHWORKFLOWSTATUS where BATCHWORKFLOWSTATUS.BATCHID = BATCH.ID and BATCH.BATCHWORKFLOWSTATEID=BATCHWORKFLOWSTATUS.BATCHWORKFLOWSTATEID), @DATE) >= BATCHWORKFLOWSTATE.OVERDUEIN then 
                    ''RES:warning''
                    else 
                    ''RES:lv_spacer''
                    end
                  , case
                    when (BATCH.ORIGINATINGBATCHID is not null) or ([CHILDBATCH].ID is not null) then 1
                    else 0
                    end INEXCEPTIONCHAIN
                  , case when CUSTOM = 1 then xtr.ORIGINATINGTEMPLATENAME else BATCHTEMPLATE.NAME end BATCHTEMPLATE
                  , case when BATCHTEMPLATE.CUSTOM = 1 then 1 else null end ISCUSTOM
                  , [BATCH].[DATEADDED]
                  , [BATCH].STATUSCODE as BATCHSTATUSCODE
                  , applock_test(''public'', convert(nvarchar(36), upper(BATCH.ID)), ''Exclusive'', ''Session'') as APPLOCKFREE
                  , case when PARENTBATCH.STATUSCODE not in (1, 2) then 0 else 1 end as PARENTCOMMITTED
                from dbo.BATCH
                  left join dbo.BATCH [CHILDBATCH] on BATCH.ID = [CHILDBATCH].ORIGINATINGBATCHID
                  left join dbo.BATCH PARENTBATCH on PARENTBATCH.ID = BATCH.ORIGINATINGBATCHID
                  inner join dbo.BATCHTEMPLATE on BATCH.BATCHTEMPLATEID = BATCHTEMPLATE.ID
                  inner join dbo.BATCHTYPECATALOG on BATCHTEMPLATE.BATCHTYPECATALOGID = BATCHTYPECATALOG.ID
                  left join dbo.BATCHWORKFLOWSTATE on BATCH.BATCHWORKFLOWSTATEID = BATCHWORKFLOWSTATE.ID 
                  left outer join (select n.ID, n.ORIGINATINGTEMPLATENAME, n.ORIGINATINGTEMPLATEID
                   from cte_name n inner join
                  ( select MAX(n.LEVELS) MAXLEVEL, n.ID
                    from cte_name n
                    group by id  
                   ) m on m.ID = n.ID and m.MAXLEVEL = n.LEVELS ) xtr on xtr.ID = BATCH.BATCHTEMPLATEID
                where dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHOWNER(@CURRENTAPPUSERID,BATCH.ID) = 1 and [BATCH].[STATUSCODE] in (0, 3)
                  and (@OWNER is null or BATCH.APPUSERID = @OWNER) '

if @BATCHDESIGN is not null
  select @sql = @sql + ' and (BATCHTEMPLATE.ID = @BATCHDESIGN or xtr.ORIGINATINGTEMPLATEID = @BATCHDESIGN) '

if @CATEGORY <> '' and @CATEGORY is not null
  select @sql = @sql + ' and BATCHTYPECATALOG.CATEGORY = @CATEGORY'

select @sql = @sql + ' order by [BATCH].[DATEADDED];';

select @paramlist = '@CURRENTAPPUSERID uniqueidentifier,
                     @BATCHDESIGN uniqueidentifier = null,
                     @OWNER uniqueidentifier = null,
                     @CATEGORY nvarchar(100) = '''' '

exec sp_executesql @sql, @paramlist, @CURRENTAPPUSERID, @BATCHDESIGN, @OWNER, @CATEGORY;