Workflow is evaluated twice when there is an active Process on the Object.
|Knowledge Article Number||000233544|
|Description||When one or more Processes are evaluated on record save, and there is any update made to the record during workflow evaluation, Workflow is reevaluated when the Processes complete.|
|Resolution||This is an expected behavior.
Each Process is made up of a Workflow Rule which always evaluates 'true', a Flow which contains the body of the Process, and a Workflow Action to call that Flow.
Flows use the SOAP API to perform actions such as creating and updating records. The outcome of the Flow and the activity it performs is not within the purview of the workflow engine. Therefore, to ensure that any updates to the record allow other workflow rules (and Processes set to run recursively) to run again, the Workflow Action which calls the Flow acts much like a Field Update with "Re-evaluate Workflow Rules after Field Change".
Note: The 'reevaluate' behavior here is independent of the outcome of the Process itself. Since the Process logic is really a Flow and its outcome is not visible to the Workflow engine, the 'reevaluate' flag is set by the underlying Workflow Action which calls the Process Flow before the Flow itself is evaluated.
The net effect when a Process evaluates and there is any update to the record during workflow evaluation (whether by the Process or a Workflow Field Update), is for Workflow to be evaluated again after Process evaluation completes. This is by design.
There is not currently an option to prevent Processes from causing Workflow to reevaluate.
To avoid unintended behavior it is recommended to avoid mixing Processes and Workflows on the same Object; Use one or the other.
If you do choose to use both Processes and Workflows in conjunction, be aware that Workflow will reevaluate, and additional rules may be triggered, if there is an update to the record made by a Workflow Field Update or by a Process.