How Do I Configure an Activity to Wait for Other Incoming Activities?

Summary

In a process, you can configure when to start system activities with a Wait All Incoming activity property, or an And activity with the Dynamic property. These properties have the same functionality, but different names. This functionality also has some overlap with the Exclusive property in the Or activity.

Start the Activity When Any ONE of the Activity's Direct Predecessors is Completed

In this scenario, if an activity has more than one entering connections (more than one process branch meet at the same activity), you want the process to move forward as soon as any one of the preceding activities completes. This scenario is the least restrictive to the process flow because there are no rules that restrict the process from moving forward.

You can set this behavior in one of these ways, depending upon the type of activity:

  • Most system activities - Set the Wait All Incoming property to False. This is the default setting for system activities, except And and Or.
  • And activity - Not applicable. This functionality would make the activity inoperable.
  • Or activity - Set the Exclusive property to False. This setting overrides any configuration on the Or activity Configuration screen.

Example Process:



Configuration:

  • On the Salesforce Update Entity activity, Wait All Incoming is set to False
  • On the SharePoint Retrieve List Item activity, Wait All Incoming is set to False.

Result:

If either the SharePoint Retrieve List Item activity or the Database Query Record activity completes, the Salesforce Update Entity activity starts.

Start the Activity Only After ALL of the Directly Predeceding ACTIVITIES are Complete

In this scenario, if an activity has more than one entering connections (more than one process branch meet at the same activity), you want the process to move forward under these conditions:

  • All of the activity's direct predecessors are complete.
  • The process does not consider whether any of the previous activities before the direct predecessor are complete.

Use this setting if you simply want the process to wait for all the activities that meet at another activity, and you do not want to consider any logic or the status of any other activities within the process.

You can set this behavior in one of these ways, depending upon the type of activity:

  • Most system activities - Set the Wait All Incoming property to True(Static).
  • And activity - Set the Dynamic property to False.
  • Or activity - Not applicable. This functionality would make the activity inoperable.

Example Process:



Configuration:

  • On the Salesforce Update Entity activity, Wait All Incoming is set to True(Static)
  • On the SharePoint Retrieve List Item activity, Wait All Incoming is set to False.

Result:

If both the SharePoint Retrieve List Item activity and the Database Query Record activity complete, the Salesforce Update Entity activity starts, regardless of the status of any other activities in the process.

Start the Acitivty Only After ALL of the Activity's Preceding Process BRANCHES are Complete

In this scenario, if an activity has more than one entering connections (more than one process branch meet at the same activity), you want the process to move forward under these conditions:

  • All of the activity's direct predecessors are complete.
  • All of the predecessors of the direct predecessors are complete. This effectively means that all of the incoming process branches are complete, in addition to the incoming activities. This only applies to activities that precede an activity in the process flow. Complex processes can have branches that start later, or from other branches and do not qualify as predecessors.
  • The activities that are considered in this rule have not been bypassed by the process's logic within the process instance.

    For example, this rule would not apply in the following scenarios:

    • A rule within a Condition activity specifies that a preceding activity or branch does not run.
    • An activity is skipped by a process owner in the Manage Center. (Because the Manage Center allows more than one way to skip activities, this may not apply in all cases, but most of the time this is true.)
  • Any process branches that do not directly feed into the activity you are configuring are not considered.

This setting is the most restrictive because it considers the maximum number of dependencies within the process without adding any other rules.

These are some common use cases for this setting:

  • The process has a Timer activity, and you want the process to wait for the timer to complete before moving forward.
  • There is a branch of the process that meets up with one of the entering branches, and you want to wait for this branch to complete before moving forward.

You can set this behavior in one of these ways, depending upon the type of activity:

  • Most system activities - Set the Wait All Incoming property to True(Dynamic).
  • And activity - Set the Dynamic property to True. This is the default setting for this activity.
  • Or activity - Not applicable. This functionality would make the activity inoperable.

Example Process:



Configuration:

  • On the Salesforce Update Entity activity, Wait All Incoming is set to True(Dynamic)
  • On the SharePoint Retrieve List Item activity, Wait All Incoming is set to False.

Result:

The Salesforce Update Entity activity starts only if the SharePoint Retrieve List Item, Databse Query Record and the Timer activies are all complete.

Related Topics