UFN_GET_EMAILPROCESS_JOBSTATUS

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@ENDDATE datetime IN
@EMAILTYPE int IN
@RETURNQUEUED bit IN
@RETURNPROCESSING bit IN
@RETURNCOMPLETED bit IN
@RETURNCANCELED bit IN
@RETURNDELETED bit IN
@RETURNSTOPPEDORPAUSED bit IN
@RETURNERROR bit IN
@QUEUEDLABEL nvarchar(100) IN
@PROCESSINGLABEL nvarchar(100) IN
@COMPLETEDLABEL nvarchar(100) IN
@CANCELEDLABEL nvarchar(100) IN
@DELETEDLABEL nvarchar(100) IN
@STOPPEDORPAUSEDLABEL nvarchar(100) IN
@ERRORLABEL nvarchar(100) IN

Definition

Copy


create function dbo.UFN_GET_EMAILPROCESS_JOBSTATUS
(
@STARTDATE datetime = null
,@ENDDATE datetime = null
,@EMAILTYPE integer = 0  --0: General purpose email jobs  1: Transactional email jobs

,@RETURNQUEUED bit
,@RETURNPROCESSING bit
,@RETURNCOMPLETED bit
,@RETURNCANCELED bit
,@RETURNDELETED bit
,@RETURNSTOPPEDORPAUSED bit
,@RETURNERROR bit
,@QUEUEDLABEL nvarchar(100) = null
,@PROCESSINGLABEL nvarchar(100) = null
,@COMPLETEDLABEL nvarchar(100) = null
,@CANCELEDLABEL nvarchar(100) = null
,@DELETEDLABEL nvarchar(100) = null
,@STOPPEDORPAUSEDLABEL nvarchar(100) = null
,@ERRORLABEL nvarchar(100) = null
)
returns @EMAILJOBSTATUS table
(
      ID int identity primary key
      ,STATUSLABEL nvarchar(100)
      ,NUMOFEMAILJOBS integer
)
as 
begin

      --This is for the edit widget setting.

        if @RETURNQUEUED = 1    
              insert into @EMAILJOBSTATUS(STATUSLABEL, NUMOFEMAILJOBS) values (@QUEUEDLABEL, 0)
        if @RETURNPROCESSING = 1                
              insert into @EMAILJOBSTATUS(STATUSLABEL, NUMOFEMAILJOBS) values (@PROCESSINGLABEL, 0)
      if @RETURNCOMPLETED = 1
              insert into @EMAILJOBSTATUS(STATUSLABEL, NUMOFEMAILJOBS) values (@COMPLETEDLABEL, 0)
        if @RETURNCANCELED = 1        
              insert into @EMAILJOBSTATUS(STATUSLABEL, NUMOFEMAILJOBS) values (@CANCELEDLABEL, 0)
        if @RETURNDELETED = 1        
              insert into @EMAILJOBSTATUS(STATUSLABEL, NUMOFEMAILJOBS) values (@DELETEDLABEL, 0)
        if @RETURNSTOPPEDORPAUSED = 1        
              insert into @EMAILJOBSTATUS(STATUSLABEL, NUMOFEMAILJOBS) values (@STOPPEDORPAUSEDLABEL, 0)
        if @RETURNERROR = 1        
              insert into @EMAILJOBSTATUS(STATUSLABEL, NUMOFEMAILJOBS) values (@ERRORLABEL, 0

      if @EMAILTYPE = 1 
      begin
                  update @EMAILJOBSTATUS 
                  set NUMOFEMAILJOBS = isnull((select count(*)
                  from dbo.EMAILSTATUSTRANSACTIONAL 
                  where
                  ((STATUS = 15 and @RETURNQUEUED = 1 and STATUSLABEL = @QUEUEDLABEL)
                              or (STATUS in (1,2,7,10) and @RETURNPROCESSING = 1 and STATUSLABEL = @PROCESSINGLABEL)
                              or (STATUS = 3 and @RETURNCOMPLETED = 1 and STATUSLABEL = @COMPLETEDLABEL)
                              or (STATUS = 5 and @RETURNCANCELED = 1 and STATUSLABEL = @CANCELEDLABEL)
                              or (STATUS = 18 and @RETURNDELETED = 1 and STATUSLABEL = @DELETEDLABEL)
                              or (STATUS in (6,8) and @RETURNSTOPPEDORPAUSED = 1 and STATUSLABEL = @STOPPEDORPAUSEDLABEL)
                              or (STATUS not in (15,1,2,7,10,3,5,18,6,8) and @RETURNERROR = 1 and STATUSLABEL = @ERRORLABEL))
                  and 
                  DATECHANGED >= isnull(@STARTDATE, '1/1/1900') and DATECHANGED < isnull(@ENDDATE, '12/31/2999')
                  group by STATUS),0)
      end
      else  
      begin
                  update @EMAILJOBSTATUS 
                  set NUMOFEMAILJOBS = isnull((select count(*)
                  from dbo.EMAILSTATUSGENERALPURPOSE
                  where
                  ((STATUS = 15 and @RETURNQUEUED = 1 and STATUSLABEL = @QUEUEDLABEL)
                              or (STATUS in (1,2,7,10) and @RETURNPROCESSING = 1 and STATUSLABEL = @PROCESSINGLABEL)
                              or (STATUS = 3 and @RETURNCOMPLETED = 1 and STATUSLABEL = @COMPLETEDLABEL)
                              or (STATUS = 5 and @RETURNCANCELED = 1 and STATUSLABEL = @CANCELEDLABEL)
                              or (STATUS = 18 and @RETURNDELETED = 1 and STATUSLABEL = @DELETEDLABEL)
                              or (STATUS in (6,8) and @RETURNSTOPPEDORPAUSED = 1 and STATUSLABEL = @STOPPEDORPAUSEDLABEL)
                              or (STATUS not in (15,1,2,7,10,3,5,18,6,8) and @RETURNERROR = 1 and STATUSLABEL = @ERRORLABEL))
                  and 
                  DATECHANGED >= isnull(@STARTDATE, '1/1/1900') and DATECHANGED < isnull(@ENDDATE, '12/31/2999')
                  group by STATUS),0)
      end

      return
end