Dear @Salem Dannawi
Please make sure that the attached processes are uploaded on staging and prod (SRD).
Dear @integration,
Kindly find below the queries to be applied by order on the two schemas (staging - prod):
Query 1:
CREATE SEQUENCE SEQ_SRD_TASK
START WITH -1
INCREMENT BY -1
NOMAXVALUE CACHE 100 ORDER;
Query 2:
CREATE SEQUENCE SEQ_SRD_REQUEST_EVENT
START WITH -1
INCREMENT BY -1
NOMAXVALUE CACHE 100 ORDER;
Query 3:
INSERT INTO SRD_TASK (ID, REQUEST_ID, TASK_NAME, TASK_STATUS, TEAM, VISIBLE, INSERTDATE, CHANGEDATE, COMPLETION_DATE)
SELECT
SEQ_SRD_TASK.NEXTVAL,
req.request_id,
'CUSTOM_TAS',
'ACTIVE',
'TAS',
0,
tas_confirm.completion_date,
tas_solution.completion_date,
tas_solution.completion_date
FROM SRD_SERVICE_REQUEST req
JOIN SRD_TASK tas_confirm
ON req.request_id = tas_confirm.request_id
AND tas_confirm.TASK_NAME = 'CONFIRM_SOLUTION'
AND tas_confirm.TASK_STATUS = 'COMPLETED'
JOIN SRD_TASK tas_solution
ON req.request_id = tas_solution.request_id
AND tas_solution.TASK_NAME = 'SOLUTION_ACCEPTANCE'
AND tas_solution.TASK_STATUS = 'COMPLETED'
WHERE tas_confirm.ID IS NOT NULL
AND tas_solution.ID IS NOT NULL
and NOT EXISTS (
SELECT *
FROM SRD_TASK tas
WHERE req.request_id = tas.request_id and tas.TASK_NAME = 'CUSTOM_TAS'
);
Query 4:
INSERT INTO SRD_TASK (ID, REQUEST_ID, TASK_NAME, TASK_STATUS, TEAM, VISIBLE, INSERTDATE, CHANGEDATE, COMPLETION_DATE)
SELECT
SEQ_SRD_TASK.NEXTVAL,
req.request_id,
'CUSTOM_TAS',
'ACTIVE',
'TAS',
0,
tas_confirm.completion_date,
tas_solution.completion_date,
tas_solution.completion_date
FROM SRD_SERVICE_REQUEST req
JOIN SRD_TASK tas_confirm
ON req.request_id = tas_confirm.request_id
AND tas_confirm.TASK_NAME = 'CONFIRM_SOLUTION'
AND tas_confirm.TASK_STATUS = 'COMPLETED'
JOIN SRD_TASK tas_solution
ON req.request_id = tas_solution.request_id
AND tas_solution.TASK_NAME = 'SOLUTION_ACCEPTANCE'
AND tas_solution.TASK_STATUS <> 'COMPLETED'
WHERE
tas_confirm.ID IS NOT NULL
AND
tas_solution.ID IS NOT NULL
and NOT EXISTS (
SELECT *
FROM SRD_TASK tas
WHERE req.request_id = tas.request_id and tas.TASK_NAME = 'CUSTOM_TAS'
);
Query 5:
INSERT INTO SRD_TASK (ID, REQUEST_ID, TASK_NAME, TASK_STATUS, TEAM, VISIBLE, INSERTDATE, CHANGEDATE, COMPLETION_DATE)
SELECT
SEQ_SRD_TASK.NEXTVAL,
req.request_id,
'CUSTOM_TAS',
'ACTIVE',
'TAS',
0,
tas_confirm.completion_date,
tas_confirm.completion_date,
tas_confirm.completion_date
FROM SRD_SERVICE_REQUEST req
JOIN SRD_TASK tas_confirm
ON req.request_id = tas_confirm.request_id
AND tas_confirm.TASK_NAME = 'CONFIRM_SOLUTION'
AND tas_confirm.TASK_STATUS = 'COMPLETED'
WHERE
tas_confirm.ID IS NOT NULL
AND NOT EXISTS (
SELECT 1
FROM SRD_TASK tas
WHERE req.request_id = tas.request_id
AND tas.TASK_NAME = 'SOLUTION_ACCEPTANCE'
)
and NOT EXISTS (
SELECT *
FROM SRD_TASK tas
WHERE req.request_id = tas.request_id and tas.TASK_NAME = 'CUSTOM_TAS'
);
Query 6:
INSERT INTO SRD_TASK (ID, REQUEST_ID, TASK_NAME, TASK_STATUS, TEAM, VISIBLE, INSERTDATE, CHANGEDATE, COMPLETION_DATE)
SELECT
SEQ_SRD_TASK.NEXTVAL,
req.request_id,
'CUSTOM_TAS',
'ACTIVE',
'TAS',
0,
tas_confirm.completion_date,
tas_confirm.completion_date,
tas_confirm.completion_date
FROM SRD_SERVICE_REQUEST req
JOIN SRD_TASK tas_confirm
ON req.request_id = tas_confirm.request_id
AND tas_confirm.TASK_NAME = 'CONFIRM_SOLUTION'
AND tas_confirm.TASK_STATUS <> 'COMPLETED'
WHERE
tas_confirm.ID IS NOT NULL
AND NOT EXISTS (
SELECT 1
FROM SRD_TASK tas
WHERE req.request_id = tas.request_id
AND tas.TASK_NAME = 'SOLUTION_ACCEPTANCE'
)
and NOT EXISTS (
SELECT *
FROM SRD_TASK tas
WHERE req.request_id = tas.request_id and tas.TASK_NAME = 'CUSTOM_TAS'
);
Query 7:
INSERT INTO SRD_REQUEST_EVENT (
ID, RECORD_TYPE, REQUEST_ID, REQUEST_TYPE, TASK_NAME, TEAM,
START_TIME, END_TIME, START_EVENT, END_EVENT, PROCESS_ID, ACTIVE
)
SELECT
SEQ_SRD_REQUEST_EVENT.NEXTVAL,
'TASK' AS RECORD_TYPE,
tas.REQUEST_ID,
evt.REQUEST_TYPE,
tas.TASK_NAME,
tas.TEAM,
tas.INSERTDATE,
tas.COMPLETION_DATE,
'TASK_CREATED' AS START_EVENT,
'TASK_COMPLETED' AS END_EVENT,
evt.PROCESS_ID,
1 AS ACTIVE
FROM SRD_TASK tas
LEFT JOIN (
SELECT *
FROM SRD_REQUEST_EVENT
WHERE RECORD_TYPE = 'REQUEST'
) evt
ON tas.REQUEST_ID = evt.REQUEST_ID
WHERE tas.TASK_NAME = 'CUSTOM_TAS'
and not exists (
SELECT *
FROM SRD_TASK tas
WHERE evt.request_id = tas.request_id and evt.TASK_NAME = tas.TASK_NAME)
;
Commit;
We will add a new report under the SLA tab called TAS SLA report, which will include the following columns:
Each record will show the duration from the activation date of the CONFIRM_SOLUTION task to the completion of the SOLUTION_ACCEPTANCE task.
The time between these tasks represents the total SLA for TAS, displayed in days (e.g., 2.4 days).
For sure the Total SLA will take into consideration the working hours and weekend / Holidays as configured in SRD.
Note: We will modify the current workflow for fixed services to make CONFIRM_SOLUTION the default task after SELECT_SOLUTION. If SSE wishes to bypass this task, they can select the ‘Skip TAS Confirmation’ option in the Service Resource panel.