USP_DATALIST_OPENBATCHES_2
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 |
@SITEFILTERMODE | tinyint | IN | Sites |
@SITESSELECTED | xml | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
@SPECIFICBATCHTYPEID | uniqueidentifier | IN | |
@NUMDAYS | int | IN | |
@ONLYEXCEPTIONBATCHES | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_OPENBATCHES_2
(
@CURRENTAPPUSERID uniqueidentifier,
@BATCHDESIGN uniqueidentifier = null,
@CATEGORY nvarchar(100) = '',
@OWNER uniqueidentifier = null,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@SPECIFICBATCHTYPEID uniqueidentifier = null,
@NUMDAYS int = 7,
@ONLYEXCEPTIONBATCHES bit = 0
)
with execute as owner
as
set nocount on;
declare @sql nvarchar(max),
@paramlist nvarchar(4000);
set @sql =
'
declare @DATE datetime
set @DATE = getdate();
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 ORIGINATINGTEMPLATE.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,
coalesce([BATCHTEMPLATESITE].NAME, ''All sites'') as BATCHTEMPLATESITE,
BATCHTYPECATALOG.ID as BATCHTYPECATALOGID
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 [dbo].[UFN_BATCHTEMPLATE_GETORIGINATINGTEMPLATE]() ORIGINATINGTEMPLATE on ORIGINATINGTEMPLATE.ID = BATCH.BATCHTEMPLATEID
left join dbo.SITE [BATCHTEMPLATESITE] on BATCHTEMPLATE.SITEID = [BATCHTEMPLATESITE].ID
where
[BATCH].[STATUSCODE] in (0, 3)
and (@OWNER is null or BATCH.APPUSERID = @OWNER)
and
(
BATCH.APPUSERID = @CURRENTAPPUSERID
or
(
(dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHOWNER(@CURRENTAPPUSERID,BATCH.ID) = 1)
and (BATCHTEMPLATE.SITEID is null or (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[BATCHTEMPLATE].[SITEID] or (SITEID is null and [BATCHTEMPLATE].[SITEID] is null))))
)
)
and
(
@SITEFILTERMODE = 0
or BATCHTEMPLATE.SITEID in (select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED))
)
and
(
@NUMDAYS is null
--The "GETLATESTTIME" date function has been inlined here for performance (the part with "dateadd(ms, -003...")...
or (@NUMDAYS is not null and dateadd(ms, -003, dateadd(d, 1, cast(cast(BATCH.DATEADDED as date) as datetime))) > dateadd(dd, -@NUMDAYS, getdate()))
)
';
if @BATCHDESIGN is not null
set @sql = @sql + ' and (BATCHTEMPLATE.ID = @BATCHDESIGN or ORIGINATINGTEMPLATE.ORIGINATINGTEMPLATEID = @BATCHDESIGN) '
if @CATEGORY <> '' and @CATEGORY is not null
set @sql = @sql + ' and BATCHTYPECATALOG.CATEGORY = @CATEGORY'
if @SPECIFICBATCHTYPEID is not null
set @sql = @sql + ' and (BATCHTYPECATALOG.ID = @SPECIFICBATCHTYPEID)'
if @ONLYEXCEPTIONBATCHES = 1 begin
set @sql = @sql + ' and (dbo.UFN_BATCH_HASBATCHEXCEPTION(BATCH.ID) = 1)'
end
set @sql = @sql + ' order by [BATCH].[DATEADDED];';
set @paramlist =
'@CURRENTAPPUSERID uniqueidentifier,
@BATCHDESIGN uniqueidentifier = null,
@OWNER uniqueidentifier = null,
@CATEGORY nvarchar(100) = '''',
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@SPECIFICBATCHTYPEID uniqueidentifier = null,
@NUMDAYS int';
exec sp_executesql @sql, @paramlist, @CURRENTAPPUSERID, @BATCHDESIGN, @OWNER, @CATEGORY, @SITEFILTERMODE, @SITESSELECTED, @SECURITYFEATUREID, @SECURITYFEATURETYPE, @SPECIFICBATCHTYPEID, @NUMDAYS;
return 0;