USP_DATALIST_COMMITTEDBATCHES_2

Returns a list of all committed batches.

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@NUMDAYS int IN Date range
@BATCHDESIGN uniqueidentifier IN Batch template
@CATEGORY nvarchar(100) IN Category
@INCLUDEDELETED bit IN Include deleted batches
@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

Definition

Copy


CREATE procedure dbo.USP_DATALIST_COMMITTEDBATCHES_2
(
  @CURRENTAPPUSERID uniqueidentifier, 
  @NUMDAYS int = 7,
  @BATCHDESIGN uniqueidentifier = null
  @CATEGORY nvarchar(100) = ''
  @INCLUDEDELETED bit = 0,
  @SITEFILTERMODE tinyint = 0
  @SITESSELECTED xml = null
  @SECURITYFEATUREID uniqueidentifier = null
  @SECURITYFEATURETYPE tinyint = null,
  @SPECIFICBATCHTYPEID uniqueidentifier = null
)
as
  set nocount on;

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

  select @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 OWNER,                            
      BATCH.STATUS,
      BATCHTYPECATALOG.CATEGORY,
      [BATCH].[DATECHANGED],
      coalesce(BATCHTYPECATALOG.BATCHDELETERECORDOPERATIONID, ''5345164C-DD4F-4B6E-9CF1-10E1B25E3F4F'') BATCHDELETERECORDOPERATIONID,
      BATCH.STATUSCODE,
      case
      when exists (select 1 
        from dbo.BUSINESSPROCESSOUTPUT
        inner join dbo.BATCHSTATUS on BATCHSTATUS.PARAMETERSETID = BATCH.ID
        and BUSINESSPROCESSOUTPUT.BUSINESSPROCESSSTATUSID = BATCHSTATUS.ID
        and BUSINESSPROCESSOUTPUT.TABLEKEY = ''CONTROL'') 
        and BATCH.STATUSCODE > 0 and len(BATCHTYPECATALOG.CONTROLREPORTREPORTSPECID) > 0 then 1
      else 0
      end CONTROLREPORTVISIBLE,
      case
      when exists (select 1 
        from dbo.BUSINESSPROCESSOUTPUT
        inner join dbo.BATCHSTATUS on BATCHSTATUS.PARAMETERSETID = BATCH.ID
        and BUSINESSPROCESSOUTPUT.BUSINESSPROCESSSTATUSID = BATCHSTATUS.ID
        and BUSINESSPROCESSOUTPUT.TABLEKEY = ''EXCEPTION'') 
        and BATCH.STATUSCODE > 0 and len(BATCHTYPECATALOG.EXCEPTIONREPORTREPORTSPECID) > 0 then
        1
      else 0
      end EXCEPTIONREPORTVISIBLE,
      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 BATCHDESIGN,
      [BATCH].[DATECOMMITTED],          
      case when BATCHTEMPLATE.CUSTOM = 1 then 1 else null end ISCUSTOM,
      coalesce([BATCHTEMPLATESITE].NAME, ''All sites'') as BATCHTEMPLATESITE
    from dbo.BATCH
    left join dbo.BATCH [CHILDBATCH] on BATCH.ID = [CHILDBATCH].ORIGINATINGBATCHID
    inner join BATCHTEMPLATE on BATCH.BATCHTEMPLATEID = BATCHTEMPLATE.ID
    inner join BATCHTYPECATALOG on BATCHTEMPLATE.BATCHTYPECATALOGID = BATCHTYPECATALOG.ID
    left outer join [dbo].[UFN_BATCHTEMPLATE_GETORIGINATINGTEMPLATE]() ORIGINATINGTEMPLATE on ORIGINATINGTEMPLATE.ID = BATCH.BATCHTEMPLATEID
    left join dbo.SITE [BATCHTEMPLATESITE] on BATCHTEMPLATE.SITEID = [BATCHTEMPLATESITE].ID
    left join BATCHWORKFLOWSTATUS [STATUSOWNER] on [STATUSOWNER].BATCHID = BATCH.ID and [STATUSOWNER].APPUSERID = @CURRENTAPPUSERID
    where
      BATCH.STATUSCODE IN (1, 1 + @INCLUDEDELETED)
      and 
      not BATCH.DATECOMMITTED is null
      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.DATECOMMITTED as date) as datetime))) > dateadd(dd, -@NUMDAYS, getdate()))
      )
      and
      (@SITEFILTERMODE = 0 or BATCHTEMPLATE.SITEID in (select SITEID from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)))
      and
      (
        [STATUSOWNER].BATCHID is not null
        or 
        BATCH.APPUSERID = @CURRENTAPPUSERID
        or     
        dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
        or
        (
          dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHOWNER(@CURRENTAPPUSERID,BATCH.ID) = 1
          and 
          (
            BATCHTEMPLATE.SITEID is null
            or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[BATCHTEMPLATE].[SITEID] or (SITEID is null and [BATCHTEMPLATE].[SITEID] is null))
          )
        )
      )';

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

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

  if @SPECIFICBATCHTYPEID is not null
    select @sql = @sql + ' and (BATCHTYPECATALOG.ID = @SPECIFICBATCHTYPEID)';

  select @sql = @sql + ' order by BATCH.DATECOMMITTED DESC; ';

  select @paramlist = '@CURRENTAPPUSERID uniqueidentifier,
                       @NUMDAYS int,
                       @BATCHDESIGN uniqueidentifier = null,
                       @CATEGORY nvarchar(100) = '''',
                       @INCLUDEDELETED bit,
                       @SITEFILTERMODE tinyint = 0, 
                       @SITESSELECTED xml = null, 
                       @SECURITYFEATUREID uniqueidentifier = null, 
                       @SECURITYFEATURETYPE tinyint = null,
                       @SPECIFICBATCHTYPEID uniqueidentifier = null';

  exec sp_executesql @sql, @paramlist, @CURRENTAPPUSERID, @NUMDAYS, @BATCHDESIGN, @CATEGORY, @INCLUDEDELETED, @SITEFILTERMODE, @SITESSELECTED, @SECURITYFEATUREID, @SECURITYFEATURETYPE, @SPECIFICBATCHTYPEID;

  return 0;