技术答疑.常用SQL.查询已超时的待办任务(Oracle版)

【应用场景】
查询已超时的待办任务(对应执行计划中的任务【工作流超时处理服务】)
【案例演示】
<1>未启用工作流日历
SELECT T.FAPPROVALASSIGNID
FROM T_WF_APPROVALASSIGN T
INNER JOIN T_WF_ASSIGN B
ON B.FASSIGNID = T.FASSIGNID
WHERE B.FSTATUS = '0'
AND T.FTIMEOUTDEAL = '1'
AND T.FDEALTIME < SYSDATE - (1.0 * T.FTIMEOUTHOURS / 24 +
1.0 * T.FTIMEOUTMINUTE / 60 / 24)
AND EXISTS (SELECT 1
FROM T_WF_PROCINST C
WHERE B.FPROCINSTID = C.FPROCINSTID
AND C.FSTATUS IN ('0', '2'));<2>已启用工作流日历
SELECT T.FAPPROVALASSIGNID
FROM T_WF_APPROVALASSIGN T
INNER JOIN T_WF_ASSIGN B
ON B.FASSIGNID = T.FASSIGNID
WHERE ((((B.FStatus = '0' AND T.FTimeoutDeal = '1') AND
((T.FCALENDARID > 0) AND EXISTS
(SELECT 1
FROM T_WF_CALENDAR TC
WHERE (tc.FID = T.FCALENDARID AND tc.FFORBIDSTATUS = 'A')))) AND
EXISTS
(SELECT 1
FROM T_WF_PROCINST C
WHERE (B.FPROCINSTID = C.FPROCINSTID AND (C.FSTATUS IN ('0', '2'))))) AND
((((((NVL(FDEALDATEHOURS, 0) +
(SELECT NVL(SUM(FTEMPCOSTHOURS), 0)
FROM T_WF_CALENDAR
WHERE FID = T.FCALENDARID)) - CASE
WHEN (ROUND((TRUNC(CAST(FDEALTIME AS DATE), 'DD') -
TRUNC(CAST(SYSDATE AS DATE), 'DD'))) <= 0) THEN
(SELECT NVL(SUM(FWORKHOURS), 0)
FROM T_WF_CALENDARDATA
WHERE ((FID = T.FCALENDARID AND FISWORKTIME = '1') AND
ROUND((TRUNC(CAST(FDAY AS DATE), 'DD') -
TRUNC(CAST(SYSDATE AS DATE), 'DD'))) = 0))
ELSE
0
END) +
(SELECT NVL(SUM(FWORK技术答疑.常用SQL.查询已超时的待办任务(Oracle版)
【应用场景】查询已超时的待办任务(对应执行计划中的任务【工作流超时处理服务】)【案例演示】<1>未启用工作流日历SELECT T.FAPPROVALASS...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



