If the SLA definition has a reset condition and a pause condition, and the reset condition and pause conditions are mutually exclusive, the expected result is:
1) task_sla will be paused when pause condition is met and reset will not occur (because it is mutually exclusive)
2) task is changed so the pause condition is false and reset condition is true.

Expected: Existing paused task_sla is Completed; new task_sla generated by reset is In Progress <-- because the Pause condition is no longer true.
Actual: Existing paused task_sla is Completed; new task_sla generated by reset is Paused <-- should be In Progress.

Steps to Reproduce

  1. Navigate to the Priority 1 Resolution (8 hour) SLA Definition on the contract_sla table.
  2. Right-click the form header and select Personalize > Form Layout, and add the Reset Condition field to the form.
  3. Add the following Reset condition to the SLA definition:
    • Updates greater than 0
    • Incident state is one of New, Active
  4. Navigate to Incident > Create New. Open a new incident, set the impact, urgency (and priority) to 1, and select Save.
    You will get a task_sla record created, and it will be set to the In Progress state.
  5. Put in a comment and select Save.
    Your existing task_sla record will be Completed, and a new task_sla record will be created and In Progress.
  6. Change the incident state to Awaiting problem and select Save.
    The In Progress task_sla record will be Paused.
  7. Put in a comment and select Save.
    The task_sla record will still be Paused.
  8. Change the incident state to New and select Save.
    Your task_sla record will be marked completed and a new task_sla record will be created, but it will be Paused and not In Progress even though the Pause Condition is no longer true.


  1. Manually perform a second update. The SLA conditions will be evaluated and the correct stage (In Progress or Paused) will be honored.
  2. Depending on the conditions in your SLA definition, it might be possible to automate this extra update with a business rule.
  3. For a fix applied directly to the SLA engine logic, manually apply the following 2 changes to script include TaskSLAController. (Make a backup of this script include first.)


At the end of the function "_checkNewSLA" just after the line "sw.log('TaskSLAController: Finished _checkNewSLA');" add the following 3 lines (if you are on Dublin you may already have the line "return taskSLA;"):

if (taskSLAadjusted)
    return taskSLAadjusted;

return taskSLA;

In the function "_stopCancel" after the line "// and just in case it should need to transition to Paused state immediately upon creation" add the following 2 lines:

// make sure the "updateTime" is correct as it may not be if we've been doing a retroactive calculation

Note: After making this change to the TaskSLAController script include, the Customer Update record for this modification should be removed so that any changes made to this script include in future versions/patches will be applied.

This modification should be thoroughly tested on a development/test instance before being applied to production.

Related Problem: PRB593692

Seen In

Calgary Patch 2 Hot Fix 14

Fixed In

Eureka Patch 3

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2016-02-04 09:09:47