Skip to main content

Colleagues I've found that I can at least partially accomplish BPMN time summations for all TASKs in the chart that are connected linearly via single process arrow connectors. This was done with a final "transaction" object at the end of the chain using the formula:
{{=sum(UPSTREAMDEEP.'TTE')}}
where: TTE is a custom attribute on all preceding BPMN tasks with time-to-execute for that task.
This however being linear does not seem to work well for a single end-state with logically branched (binary) paths.


The thought was to create a property on the decision gateway that would allow the user to select TRUE/FALSE as a predetermined decision and then evaluate the resultant sum. This could be a doable solution to scenario evaluation albeit somewhat manual.


Please advise with examples and/or formula-syntax that i could experiment with.


Thank you

NOTE: by adding 1 decision gateway and two branches at the final state it sums both sides of the gateway to the beginning and then finally adds them together so the sum is double.


Thanks


NOTE:



  1. i placed a property on the gateway called: DECISION with value either TRUE or FALSE

  2. i created a rule that displays the icon CHECK or ! on the gateway depending on the above setting

  3. i created a TRANSACTION at the beginning of the chain with formula: {{=sum(DOWNSTREAMDEEP.'TTE')}}

  4. It now provides a sum of 1-path not both (as above)

  5. I am not sure if the gateway is influencing this or not.


Thoughts


Hi John


Thank you for contributing to the Lucid Community! Sorry for the trouble you have been experiencing. This issue actually sounds like something we've seen before in this thread where another user was attempting to sum the "time to completion" across a process with different paths that branched at a decision node. There we observed that even though the user had configured her custom data and formula correctly the upstreamdeep formula simply was not calculating the values as intended and concluded it was a bug. While your set-up sounds a bit different I believe the core problem is the same. If so I can confirm this is a known issue that has been reported to our development team who is actively looking into it. I apologize for any disruption this may cause and I will update this thread here as well as the other thread with this issue with any new information about a fix. 


Just in case it's helpful here's an additional resource you can explore: the Lucid Developer Docs! They show a wide variety of formulas that are available and details for how they work. I've linked the page that discusses the upstreamdeep formula in case you find it helpful. Please let me know if you have any additional questions. 


Thanks for the information. I created the following test case that CAN be made to work as long as NONE of the decision branches become re-entrant:



 


Question is can I add a re-entrance gateway with a formula that will look back at the previous branching gateway to see property DECISION and follow a property on the lines BOOLEAN=TRUE or BOOLEAN=FALSE to then "lookup" only the member objects on the line whose BOOLEAN value is equal to the DECISION property at the gateway? This likely would have to support some kind of recursion. Alternately the branching gateway could stop further recursion but would have to provide a {{=SUM(UPSTREAMDEEP.'tte')}} to pass on the previously summed value up to that gateway to the next branches calculations.


Please advise.


addendum:
{{=SUM(UPSTREAM2GATEWAY.'tte')}}
Therefore summation would be localized only to the linear tasks between gateways + the property in the initiating gateway.


Accumulation would have to happen at each gateway so that values could be "passed forward" to the select branch.



Hi John


Thank you for the reply and insight on your current workflow! You can use =LABEL(this) to reveal the shape's unique ID which can then be used to reference this shape's "decision" boolean.

To be specific at your decision shape you can create an additional custom data field "uniqueShapeID" with the input:


=LABEL(this) 

 


This will generate a unique ID (e.g. "9IB5o+Hp6pGIw7dO2x13OC1rq9o=") for the decision shape. The final shape can calculate the sum using a logical expression with the format =IF(expression resultTrue resultFalse). 



Finally you can reference the "decision" data field using the shape's unique ID as is displayed below:


=IF(#"9IB5o+Hp6pGIw7dO2x13OC1rq9o="."decision"=TRUE resultTrue resultFalse)


I hope this helps! Please let me know if you have any further questions or concerns.


Reply