Assigned Workflow for all Workers in Workgroup
This Query can be used to allow all Workers that are members of a Workgroup to see any Assigned Workflow, similar to what a manager of the Workgroup can see.
SQL
SQL
SELECT DISTINCT
SDWF.RECID,
SDWF.SERVICE_DESK_RECID,
SDWF.SERVICE_DESK_ACTIONS_RECID,
SDWF.SEQUENCE,
SDWF.WORKGROUPS_RECID,
SDWF.WORKER_CONTACTS_RECID,
SDWF.START_DATE,
SDWF.COMPLETED_DATE,
SDWF.SCHEDULED_DATE,
SDWF.SCHEDULED_END_DATE,
(IF(CONCAT(COALESCE(SDWF.SEQUENCE, ''), COALESCE(IF(CONCAT(' - ', (SUBSTR(SDWF.NOTES, 1, 4000))) = '',NULL,CONCAT(' - ', (SUBSTR(SDWF.NOTES, 1, 4000)))), '')) = '',
NULL,CONCAT(COALESCE(SDWF.SEQUENCE, ''), COALESCE(IF(CONCAT(' - ', (SUBSTR(SDWF.NOTES, 1, 4000))) = '',NULL,CONCAT(' - ', (SUBSTR(SDWF.NOTES, 1, 4000)))), ''))))
AS WF_NUM_NOTES,
SDWF.BILLABLE,
(SUBSTR(SDWF.NOTES, 1, 4000)) AS NOTES,
(CASE WHEN SDWF.COMPLETED_DATE IS NULL THEN NULL WHEN SDWF.COMPLETED_DATE >
COALESCE(SDA.DUE_DATE, SD.DUE_DATE) THEN 0 ELSE 0 END) AS COMPLETED_ONTIME,
SDWF.ESTIMATED_TIME,
SDWF.REPORTED_TIME_WORKED,
SDWF.ACTUAL_TIME_WORKED,
SDWF.TIME_ON_HOLD,
(CASE SDWF.SD_WF_STATUS_LISTS_RECID WHEN 363 THEN (SELECT (SUBSTR(REMARKS, 1, 4000)) AS WF_REMARKS FROM SERVICE_DESK_WORKFLOW_ACT AS WFA
LEFT JOIN LISTS AS SD_WF_STATUS_LISTS_VALUE ON WFA.SD_WF_STATUS_LISTS_RECID = SD_WF_STATUS_LISTS_VALUE.RECID
WHERE (WFA.SERVICE_DESK_WORKFLOW_RECID = SDWF.RECID) AND (WFA.MODIFIED_DATE = (SELECT MAX(WFA.MODIFIED_DATE) AS MODIFIED_DATE FROM SERVICE_DESK_WORKFLOW_ACT AS WFA
LEFT JOIN LISTS AS SD_WF_STATUS_LISTS_VALUE ON WFA.SD_WF_STATUS_LISTS_RECID = SD_WF_STATUS_LISTS_VALUE.RECID
WHERE (WFA.SERVICE_DESK_WORKFLOW_RECID = SDWF.RECID) AND (SD_WF_STATUS_LISTS_VALUE.CODE = 'HOLD'))) AND (SD_WF_STATUS_LISTS_VALUE.CODE = 'HOLD')) ELSE NULL END)
AS HOLD_REASON,
SD.RECID AS SD_RECID,
SD.SD_NUMBER,
SD.SD_STATUS_LISTS_RECID,
SD.DUE_DATE AS SD_DUE_DATE,
SD.MODIFIED_DATE AS SD_MODIFIED_DATE,
SD.DESCRIPTION AS SD_DESCRIPTION,
(SELECT SERVICE_DESK_ACTIVITY.MODIFIED_DATE FROM SERVICE_DESK_ACTIVITY WHERE (SERVICE_DESK_ACTIVITY.ACTIVITY_TYPE = 'typeCreated')
AND (SERVICE_DESK_ACTIVITY.SERVICE_DESK_RECID = SD.RECID) ORDER BY MODIFIED_DATE ASC LIMIT 1) AS SD_CREATED_DATE,
(SELECT SERVICE_DESK_ACTIVITY.MODIFIED_DATE
FROM SERVICE_DESK_ACTIVITY WHERE (SERVICE_DESK_ACTIVITY.ACTIVITY_TYPE = 'typeCompleted') AND (SERVICE_DESK_ACTIVITY.SERVICE_DESK_RECID = SD.RECID)
ORDER BY MODIFIED_DATE ASC LIMIT 1) AS SD_COMPLETED_DATE,
(SELECT SERVICE_DESK_ACTIVITY.MODIFIED_DATE FROM SERVICE_DESK_ACTIVITY
WHERE (SERVICE_DESK_ACTIVITY.ACTIVITY_TYPE = 'typeFinalized') AND (SERVICE_DESK_ACTIVITY.SERVICE_DESK_RECID = SD.RECID) ORDER BY MODIFIED_DATE ASC LIMIT 1)
AS SD_FINALIZED_DATE,
COALESCE(MASK_MODIFIED2.DISPLAY_NAME, SD.MODIFIED_BY) AS SD_MODIFIED_BY,
SDA.SD_ACTION_LISTS_RECID,
SDA.SD_STATUS_LISTS_RECID AS SDA_SD_STATUS_LISTS_RECID,
SDA.SDA_NUMBER,
SDA.SERVICE_ID,
SDA.START_DATE AS SDA_START_DATE,
SDA.DUE_DATE AS SDA_DUE_DATE,
V_SDAD.DESCRIPTION AS ACTION_VALUE_NAME,
COALESCE(V_SDAD.S_SERVICE_ID_FMT, V_SDAD.S_SERVICE_ID, SDA.SERVICE_ID) AS SDA_SERVICE_ID,
COALESCE(MASK_MODIFIED.DISPLAY_NAME, WFACB.MODIFIED_BY) AS COMPLETED_BY,
WG.NAME AS WORKGROUP_NAME,
(IF(CONCAT(COALESCE(LAST_NAME, ''), COALESCE(IF(CONCAT(', ', FIRST_NAME) = '',NULL,CONCAT(', ', FIRST_NAME)), '')) = '',
NULL,CONCAT(COALESCE(LAST_NAME, ''), COALESCE(IF(CONCAT(', ', FIRST_NAME) = '',NULL,CONCAT(', ', FIRST_NAME)), '')))) AS WORKER,
SDC.NAME AS SOURCE,
(SELECT COUNT(LSUB.RECID)
FROM SERVICE_DESK_LABOR AS LSUB WHERE (SDWF.RECID = LSUB.SERVICE_DESK_WORKFLOW_RECID)) AS LABOR_RECORDS,
(SELECT SUM(LSUB2.HOURS_WORKED) FROM SERVICE_DESK_LABOR AS LSUB2 WHERE (SDWF.RECID = LSUB2.SERVICE_DESK_WORKFLOW_RECID)) AS LABOR_TIME,
SDWF.MODIFIED_DATE AS SDWF_MODIFIED_DATE,
LOC.PATH AS LOCATION,
MLOC.PATH AS MOVE_TO_LOCATION,
SDWF_SD_WF_STATUS_VALUE_LIST.VALUE AS SDWF_SD_WF_STATUS_VALUE,
SDWF_SD_WF_STATUS_VALUE_LIST.CODE AS SDWF_SD_WF_STATUS_CODE,
SD_SD_STATUS_VALUE_LIST.VALUE AS SD_SD_STATUS_VALUE,
SD_SD_STATUS_VALUE_LIST.CODE AS SD_SD_STATUS_CODE,
SDA_SD_ACTION_VALUE_LIST.VALUE AS SDA_SD_ACTION_VALUE,
SDA_SD_ACTION_VALUE_LIST.CODE AS SDA_SD_ACTION_CODE,
SDA_SD_STATUS_VALUE_LIST.VALUE AS SDA_SD_STATUS_VALUE,
SDA_SD_STATUS_VALUE_LIST.CODE AS SDA_SD_STATUS_CODE
FROM SERVICE_DESK_WORKFLOW AS SDWF
LEFT JOIN SERVICE_DESK AS SD ON SD.RECID = SDWF.SERVICE_DESK_RECID
LEFT JOIN USERS AS MASK_MODIFIED2 ON SD.MODIFIED_BY = MASK_MODIFIED2.USERID
LEFT JOIN SERVICE_DESK_ACTIONS AS SDA ON SDWF.SERVICE_DESK_ACTIONS_RECID = SDA.RECID
LEFT JOIN V_SERVICE_DESK_ACTIONS_DSCR AS V_SDAD ON SDA.RECID = V_SDAD.RECID
LEFT JOIN SERVICE_DESK_WORKFLOW_ACT AS WFACB ON SDWF.RECID = WFACB.SERVICE_DESK_WORKFLOW_RECID
LEFT JOIN USERS AS MASK_MODIFIED ON WFACB.MODIFIED_BY = MASK_MODIFIED.USERID
LEFT JOIN LISTS AS SD_WF_STATUS_LISTS_VALUE ON WFACB.SD_WF_STATUS_LISTS_RECID = SD_WF_STATUS_LISTS_VALUE.RECID
LEFT JOIN WORKGROUPS AS WG ON WG.RECID = SDWF.WORKGROUPS_RECID
LEFT JOIN CONTACTS AS C ON C.RECID = SDWF.WORKER_CONTACTS_RECID
LEFT JOIN SDC_WORKFLOW AS SDCWF ON SDCWF.RECID = SDWF.SOURCE_TABLE_RECID AND SDWF.SOURCE_TABLE_NAME = 'SDC_WORKFLOW'
LEFT JOIN SDC ON SDC.RECID = SDCWF.SDC_RECID
LEFT JOIN LOCATIONS_TEXTPATH AS LOC ON LOC.RECID = SDA.LOCATIONS_RECID
LEFT JOIN LOCATIONS_TEXTPATH AS MLOC ON MLOC.RECID = SDA.MOVETO_LOCATIONS_RECID
LEFT JOIN LISTS AS SDWF_SD_WF_STATUS_VALUE_LIST ON SDWF.SD_WF_STATUS_LISTS_RECID = SDWF_SD_WF_STATUS_VALUE_LIST.RECID
LEFT JOIN LISTS AS SD_SD_STATUS_VALUE_LIST ON SD.SD_STATUS_LISTS_RECID = SD_SD_STATUS_VALUE_LIST.RECID
LEFT JOIN LISTS AS SDA_SD_ACTION_VALUE_LIST ON SDA.SD_ACTION_LISTS_RECID = SDA_SD_ACTION_VALUE_LIST.RECID
LEFT JOIN LISTS AS SDA_SD_STATUS_VALUE_LIST ON SDA.SD_STATUS_LISTS_RECID = SDA_SD_STATUS_VALUE_LIST.RECID
LEFT JOIN LISTS AS SD_STATUS_LISTS_VALUE ON SD.SD_STATUS_LISTS_RECID = SD_STATUS_LISTS_VALUE.RECID
LEFT JOIN LISTS AS SDA_STATUS_LISTS_VALUE ON SDA.SD_STATUS_LISTS_RECID = SDA_STATUS_LISTS_VALUE.RECID
WHERE
(SD_STATUS_LISTS_VALUE.CODE NOT IN ('CREATED','REQUESTED','DENIED') OR SD.SD_STATUS_LISTS_RECID IS NULL)
AND (SDA_STATUS_LISTS_VALUE.CODE != 'VOID' OR SDA.SD_STATUS_LISTS_RECID IS NULL) AND SD_WF_STATUS_LISTS_VALUE.CODE = 'COMPLETE'