How do you get Appian to process an OR Gateway adhering to the BPMN 2.0 standard

How do you get Appian to process an OR Gateway adhering to the BPMN 2.0 standard? In BPMN 2.0, utilized by Appian, an Inclusive OR Gateway specifies that one or more of the available paths will be taken. They could all be taken, or only one of them. And when a 2nd OR Gateway is used to merge the paths, the OR gateway explicitly requires that all paths that were activated must be completed prior to continuing in the process.The behavior allows for implementing process flows where 0 to many paths may be taken and then whichever ones were taken for each process instance, they must all be completed before the process continues.

Appian adheres to the BPMN 2.0 standard for the OR Gateway split, but for the OR Gateway merge, it is not adhering to the standard and waiting for the all the instances to complete. My testing and Appian Docs at link below confirm this by stating "When multiple flows enter an OR node, the Gateway node pauses after the first in...

OriginalPostID-169192

OriginalPostID-169192

  Discussion posts and replies are publicly visible

Parents
  • For these situations, I would use a boolean variable in the process instance to decide whether the OR should be executed, or not enough situations have been satisfied. Merge all paths at a script task before the OR where you run some logic to set this boolean variable to true or false. Continue from there to a single path to an OR node. The first expression checks the boolean variable, if false (should not yet continue), run to a non-terminating End Event. If true, check next logic to decide where to route the process and continue.
Reply
  • For these situations, I would use a boolean variable in the process instance to decide whether the OR should be executed, or not enough situations have been satisfied. Merge all paths at a script task before the OR where you run some logic to set this boolean variable to true or false. Continue from there to a single path to an OR node. The first expression checks the boolean variable, if false (should not yet continue), run to a non-terminating End Event. If true, check next logic to decide where to route the process and continue.
Children
No Data