USP_EMAIL_JOBSEARCH
Used by email job search list
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEARCHTRANSACTIONALJOBS | bit | IN | |
@SEARCHGENERALPURPOSEJOBS | bit | IN | |
@SUBJECT | nvarchar(1000) | IN | |
@EMAILADDAFTERDATE | datetime | IN | |
@EMAILADDBEFOREDATE | datetime | IN | |
@JOBDESCRIPTION | nvarchar(1000) | IN | |
@STATUS | int | IN | |
@MAXROWS | smallint | IN |
Definition
Copy
CREATE procedure dbo.USP_EMAIL_JOBSEARCH
(
@SEARCHTRANSACTIONALJOBS bit,
@SEARCHGENERALPURPOSEJOBS bit,
@SUBJECT nvarchar(1000) = null,
@EMAILADDAFTERDATE datetime = null,
@EMAILADDBEFOREDATE datetime = null,
@JOBDESCRIPTION nvarchar(1000) = null,
@STATUS integer = null,
@MAXROWS smallint = 500
)
as
set @SUBJECT = COALESCE(@SUBJECT,'') + '%';
set @JOBDESCRIPTION = COALESCE(@JOBDESCRIPTION,'') + '%';
set @EMAILADDAFTERDATE = COALESCE(@EMAILADDAFTERDATE,cast('1980-01-01' as datetime));
set @EMAILADDBEFOREDATE = COALESCE(@EMAILADDBEFOREDATE,cast('3000-01-01' as datetime));
set @STATUS = COALESCE(@STATUS,9); -- default to all jobs
/*
Status to StatusCode mapping
StatusCode = 0 (Queued)
Status = 15
StatusCode = 1 (Processing)
Status = 1
Status = 2
Status = 7
Status = 10
StatusCode = 2 (Completed)
Status = 3
StatusCode = 3 (Canceled)
Status = 5
StatusCode = 4 (Deleted)
Status = 18
StatusCode = 5 (Stopped / Paused)
Status = 6
Status = 8
StatusCode = 6 (Error)
Status = 0
Status = 4
Status = 9
Status = 16
Status = 17
*/
with EMAILJOBSTATUS_CTE(ID,
JOBTYPE,
JOBDESCRIPTION,
[SUBJECT],
PROCESSINGORDER,
RETRYNUMBER,
[STATUS],
DATEADDED,
DATECHANGED,
REQUESTEDSENT,
ACTUALSENT
)
as (select ID,
0,
EMAILHEADER.value('(/EmailHeader/JobDescription)[1]','nvarchar(1000)') as JOBDESCRIPTION,
EMAILHEADER.value('(/EmailHeader/Subject)[1]','nvarchar(1000)') as [SUBJECT],
PRIORITY,
RETRYNUMBER,
[STATUS],
DATEADDED,
DATECHANGED,
REQUESTEDSENT,
ACTUALSENT
from dbo.EMAILSTATUSGENERALPURPOSE
where @SEARCHGENERALPURPOSEJOBS = 1
union all
select ID,
1,
EMAILHEADER.value('(/EmailHeader/JobDescription)[1]','nvarchar(1000)') as JOBDESCRIPTION,
EMAILHEADER.value('(/EmailHeader/Subject)[1]','nvarchar(1000)') as [SUBJECT],
0,
RETRYNUMBER,
[STATUS],
DATEADDED,
DATECHANGED,
REQUESTEDSENT,
ACTUALSENT
from dbo.EMAILSTATUSTRANSACTIONAL
where @SEARCHTRANSACTIONALJOBS = 1
)
select top (@MAXROWS) ID,
JOBTYPE,
JOBDESCRIPTION,
[SUBJECT],
PROCESSINGORDER,
RETRYNUMBER,
[STATUS],
DATEADDED,
DATECHANGED,
REQUESTEDSENT,
ACTUALSENT
from EMAILJOBSTATUS_CTE
where
(SUBJECT like @SUBJECT)
and
(JOBDESCRIPTION like @JOBDESCRIPTION)
and
(DATEADDED >= @EMAILADDAFTERDATE)
and
(DATEADDED <= @EMAILADDBEFOREDATE)
and
(@STATUS = (case when [STATUS] = 15 then 0
when [STATUS] = 3 then 2
when [STATUS] = 18 then 4
when [STATUS] in (6,8) then 5
when [STATUS] in (1,2,7,10) then 1
else 6 end
)
or
(@STATUS = 7 and [STATUS] in (1,2,7,10,15))
or
(@STATUS = 8 and [STATUS] in (3,6,8,18))
or
(@STATUS = 9)
)
order by
DATECHANGED desc