Dear all,
A bug was identified starting in build 15210 and a patch for this issue has been released in build 15240.
Issue:
An incorrect SLA is applied to requests that follow the transition Open → Resolved → Reopen, meaning requests that are reopened directly without being closed. If you are in any build between 15210 and 15230, we recommend you upgrade the application to build 15240 that contains the patch for this issue.
Please refer to our release notes.
Please note that this issue does not impact build 15200 or earlier. If upgrading the application is not feasible at this time, please follow the steps outlined below to apply the temporary fix.
For temporary fix, use the attached file SD_137867_Fix_15210.fjar for build 15210 and SD_137867_Fix_15220_15230.fjar for builds 15220 and 15230.
1. Download the attachment and extract the .fjar file.
2. Place it under ../ManageEngine/ServiceDesk/fixes folder.
3. If you do not find a folder named fixes, create a folder under ../ManageEngine/ServiceDesk and place the file.
Note: The folder name fixes is case sensitive and all letters must be in lower case.
4. Restart the application and this should fix the issue.
The following custom query can be used to identify affected requests. Use the appropriate custom query based on the database used in the backend.
MSSQL:
SELECT DISTINCT
w_reopen.workorderid
FROM
workorderhistory w_reopen
JOIN workorderhistorydiff wohd_sla_limit
ON wohd_sla_limit.historyid = w_reopen.historyid
JOIN workorderhistory w_resolved
ON w_resolved.workorderid = w_reopen.workorderid
JOIN workorder wo
ON wo.workorderid = w_reopen.workorderid
WHERE
wohd_sla_limit.columnname = 'SLA_LIMIT_REACHED_INFO'
AND w_resolved.historyid = (
SELECT TOP 1
h2.historyid
FROM
workorderhistory h2
JOIN workorderhistorydiff d2
ON d2.historyid = h2.historyid
WHERE
h2.workorderid = w_reopen.workorderid
AND d2.columnname = 'STATUSID'
AND TRY_CAST(d2.current_value AS BIGINT) IN (
SELECT statusid
FROM statusdefinition
WHERE internalname = 'resolved'
)
AND h2.operationtime < w_reopen.operationtime
ORDER BY
h2.operationtime DESC
);
PGSQL:
SELECT DISTINCT
w_reopen.workorderid
FROM
workorderhistory w_reopen
JOIN workorderhistorydiff wohd_sla_limit
ON wohd_sla_limit.historyid = w_reopen.historyid
JOIN workorderhistory w_resolved
ON w_resolved.workorderid = w_reopen.workorderid
WHERE
wohd_sla_limit.columnname = 'SLA_LIMIT_REACHED_INFO'
AND w_resolved.historyid = (
SELECT
h2.historyid
FROM
workorderhistory h2
JOIN workorderhistorydiff d2
ON d2.historyid = h2.historyid
WHERE
h2.workorderid = w_reopen.workorderid
AND d2.columnname = 'STATUSID'
AND d2.current_value::bigint IN (
SELECT statusid
FROM statusdefinition
WHERE internalname = 'resolved'
)
AND h2.operationtime < w_reopen.operationtime
ORDER BY
h2.operationtime DESC
LIMIT 1
);