Resolved to Open without being closed

Resolved to Open without being closed

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
    );

                  New to ADSelfService Plus?