Support Article

A nested stage change loses the Service Level Agreement (SLA)



A Service Level Agreement (SLA) is associated with a particular stage on a cover.

The child case is resolved and the stage of the parent is switched to another stage which does not have an SLA.

While in this stage, the flow manually restores the parent to the original stage. When this happens, the SLA associated with the parent is lost.

Error Messages

Not Applicable

Steps to Reproduce

  1. Configure a work object with stages A and B and set an SLA on stage A.
  2. Open a work object in stage A, which contains the pzInternalStageFlow flow associated with an SLA.
  3. While resolving one of the child case objects, use the pxChangeStage activity to change the stage of the parent work object from stage A to stage B. Stage B does not have an associated SLA.
  4. In stage B, the flow rule will once again reenter into stage A using the change stage smart shape.

Root Cause

A defect in Pegasystems’ code or rules.

The current architecture does not support the proper handling of an SLA associated with one stage but not another if a nested stage transition is constructed.

The following example demonstrates a nested stage transition.

1. There is a Parent – Child case configured with Child to be Automatically Instantiated.

2. Parent Case is as follows:

3. The parent case’s “CRAZYSTAGE” is configured with an SLA as shown.

4. The child case is configured with a ChildStageProcess flow, which is calling an activity “MoveToParentAlternateStage”.
This activity in turn calls the pxChangeStage activity to move to the parent’s alternate stage.

** The activity “MoveToParentAlternateStage” configured as follows.

5. The alternate stage of the parent is configured with a flow calling the “Change Stage” utility to move to “CRAZYSTAGE”.

To reproduce the problem:
  1. Create the parent case and move to the second stage “CRAZYSTAGE”. Now observe on the clipboard (pyWorkPage.pxFlow) that this stage has an SLA configured in “pzInternalStageFlow”.
  2. As Child gets automatically instantiated, progress the Child case, which would call the activity “MoveToParentAlternateStage”. This activity in turn calls the pxChangeStage activity and moves to the parent’s alternate stage.
  3. Progress the alternate stage, which moves to the “CRAZYSTAGE”. Now observe the clipboard and the pzInternalStageFlow is missed.


Perform the following local-change:

1. Add an assignment before calling the “Change Stage” utility (Alternate Stage of the parent case) and configure it with a dummy flow action as shown below:

2. In the activity of the child case, add a step to call “ResumeFlow” after calling the pxChangeStage activity.

Published April 27, 2017 - Updated May 16, 2017

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.