Milestones not auto-removing when criteria no longer met
|Knowledge Article Number||000199066|
|Description||There could be circumstances where a milestone still appears although the criteria is no longer met. This can happen, for example, when changing the ownership of a record via the UI.
This is working as designed. Some of the instances where milestone is not evaluated are:
- Changing the case ownership through the UI (clicking on change next to the record owner's name)
- Field updates done as a milestone (or a workflow) action.
So, for example, this scenario:
The Case owner is changed through the UI plus a Process Builder that runs a Flow. In this Flow a field on the case is updated which is in the criteria for the Milestone ("Value1" = Milestone1, "Value2" = Milestone2). This change of owner updates the field that should change the Milestone, but the Milestone does not get updated. However, we have a checkbox which performs the same actions as changing the Case owner. In this scenario, the field which is the criteria for the Milestone and the Milestone itself both get updated.
Similarly, you could create a trigger on Case to update the checkbox mentioned above. So, with the trigger, the owner was changed -> the trigger updated the checkbox -> which through Process Builder executed a Flow -> which updated the criteria field. But the Milestone did not update.
|Resolution||At the moment, Case transfer does not invoke Entitlement recalculation and that is expected. There are few workarounds available for this limitation.
- Editing/saving the case when the criteria is no longer true (i.e. User changes the case owner - milestone remains - then edits the case and saves the changes - milestone is then reevaluated and removed since criteria is no longer true)
- Using Apex @future method to perform an update to the case after ownership leaves from one of the queue/user being used as a criteria (i.e. case ownership is transferred which does not evaluate the milestone, then a @future action updates the case - milestone is evaluated and removed since criteria is no longer true)
- Using an entirely different criteria altogether.