Ungrouping Groups with Scopes

Groups with scopes are groups that contain group variables, event handlers, fault handlers, and compensation handlers. To ungroup groups with scopes, click the icon and select Ungroup option. When the group is removed, the GroupStart and GroupEnd elements are deleted, and the activities move to the space that formerly contained the group. The contents of the group are re-located based on the type of container that held the group. A group with a scope can be contained within a local transaction group, a group with a scope, or a process.

Groups with Group Variables

Group variables, which can consist of activity input variables, activity output variables, or user-defined variables, are moved out of the group to the nearest container that can be a group with a scope, or a process. Global and local variables, including group counter variables, index variables, or other variables that are part of the group, are deleted during the ungrouping process.

Groups with Event Handlers

If a group with event handlers is contained in a group with a scope, a Local Transaction group, or a process, the activities and activity transitions are moved to the process flow of the container.

To ensure the activities are moved to an event handler, set the Ungroup preferences to Move Event Handlers > To Event Handler of parent group. See Configuring the Ungroup Preferences for instructions on how to do this. When this preference is selected, the following actions will occur after ungrouping a group with event handlers:
  • If the container is a group with a scope, an event handler with the same configurations is created for the container, and activities are moved to the newly created event handler.
  • If the container is a process, an event handler with the same configurations is created for the process, and activities are moved to the newly created event handler.
  • If the container is a local transaction group, an event handler with the same configurations is created for the nearest group with a scope. If there is no nearby group, or parent group, with a scope, an event handler is created for the process. In both cases, activities are moved to the newly created event handler.

Groups with Fault Handlers

If a group with Catch fault handlers, or a Catch All fault handler, is contained in a group with a scope, a Local Transaction group, or a process, the activities and activity transitions are moved to the process flow of the container group or container process.
Note: Only one Catch All fault handler can exist for a group or the process, so if a group or a process already contains a Catch All fault handler the activities are moved to the existing Catch All fault handler. In other words, a new Catch, or a Catch All, fault handler is only created if a similar fault handler does not currently exist in the group or the process.
To ensure the activities in the Catch fault handler, or a Catch All fault handlers are moved to new Catch fault handlers, or a new Catch All fault handler, set the Ungroup preferences to Move Catch Activities > To Catch of parent group or Move Catch Activities > To Catch All of parent group. For more information, see Configuring the Ungroup Preferences . When this preference is selected, the following actions will occur:
  • If the container is a group with a scope, a Catch, or a Catch All, fault handler is created for the container, and activities in the fault handlers are moved to the newly created fault handlers.
  • If the container is a process, a Catch, or a Catch All, fault handler is created for the container, and activities in the fault handlers are moved to the newly created fault handlers.
  • If the container is a local transaction group, a Catch, or a Catch All, fault handler is created for the nearest group with a scope, or is created for the process. Activities in the fault handlers are moved to the newly created fault handlers.

Groups with Compensation Handlers

If activities in a group with compensation handlers is contained in a group with a scope, a Local Transaction group, or a process, the activities and activity transitions in the group moved to the process flow of the container.

To ensure the activities in compensation handlers are moved into new compensation handlers, set the Ungroup preferences to Move Catch Activities > To Compensation Handler of parent group. For more information, see Configuring the Ungroup Preferences . When this preference is selected, the following actions will occur:
  • If the container is a group with a scope, and the group does not have a compensation handler, a compensation handler is created for the container, and activities are moved to the compensation handler.
  • If the container is a process, a compensation handler is not created for the container, and the compensation handler activities are moved to the process flow.
  • If the container is a local transaction group, a compensation handler is not created for the container. Instead, a compensation handler is created for the nearest group with a scope.