How to access retry Time Cycle count?


#1

I have a service task which checks if the flow can continue if e.g. a file exists. If it doesnt exists it will retry up to 3 times with some wait time inbetween. The last time it fails is it possible to get e.g. the retry count and say if it’s 0 then redirect it to another path rather than the error.


#2

@henning just a quick idea that came to mind for this… Thoughts on using a Sequential Multi-instance service task: The Multiinstance generates 3 tasks, and you set the Multi-instance completion condition to validate to true when the file is found, otherwise the 3 tasks will execute.

something like:


#3

@StephenOTT I like that idea, though I forgot to write that there should be a time delay before trying again e.g. wait 1 minute. I have edited my first post to reflect this. Is this revised problem still solvable with Sequential Multi-instance, cause I do not know how to delay the execution. I wouldnt mind if the first execution was delayed aswell.


#4

Something like this?
Note: i added the script task for visual purposes only. Likely you can just add the script that updates the process variable with your completion condition into a listener or the script/delegate that runs for your service task.


#5

Thank you for your effort. The reason I wanted to use retry Time Cycle was because we initially had a task, a timer and a gateway and I thought maybe there is a cleaner way to retry an activity x times with a delay inbetween. By adding the gate and the timer we are now back at the same complexity.


#6

@henning why does adding th gateway and timer create “too much complexity” for you?


#7

My problem can be solved like this, and your suggestion. And it’s something I do fairly often. Im looking for a more clean solution.

The second image is what im hoping to achieve.
I can almost achieve this with retry time cycle. It’s just that the last failure I need to direct the flow to a meaningful direction. Which would be possible if I can check a retry counter or something and say
if ( retryCounter != 0) {
DoAnotherRetry()
} else{
NoMoreTriesTakeAnotherPath()
}



#8

@henning I was wondering what approach have worked for you best as i’m having the same scenario
(Interval check state on a remote app)

thanks.


#9

@Asaf_Shakarzy see the link i posted in the Interval Check State on remote app link.


#10

@Asaf_Shakarzy
I read your thread. In the end I had to modell it like this.
It’s similar to your loop. Im no fan of counters because I dont like the flow to change for no apparent reason so I circumvent that by using a timer on a subprocess.

@StephenOTT
I checked you pattern feedback time, it is interesting and make the workflow look very clean.