Please note that VisualCron support is not actively monitoring this community forum. Please use our contact page for contacting the VisualCron support directly.


Nick Weckman
2022-06-07T15:04:15Z
Running into an issue where the behavior of a Condition/Action in a loop is no longer functioning the same way. Here is my process in a nutshell:

1. grab a list of keys via SQL
2. for each key, run a stored procedure via SQL to create a payload
3. send out the payload via an HTTP task UNLESS the payload is blank, which I check through a condition on this task. If it IS blank, the condition has the Action of "On Match All, Don't wait, Next"
4. loop through steps 2 and 3 for each value in 1.
5. run an update via SQL

My issue is, that previously, before the upgrade, if a payload was blank, and therefore my HTTP task was skipped, it would go to the next value in step 1 and proceed as normal. No problem

Since the upgrade, if a payload is blank, it still skips the HTTP task, however, it does not go to the next value in step 1, instead it exits out of the loop and goes to step 5.

Thanks in advance for any help here. Happy to provide more info if it helps.
Sponsor
Forum information
Pavel
2022-06-28T07:55:37Z
Hi!

Could you please drop a line on support@visualcron.com with some screenshots regarding this issue?
NeuVisualCron
2022-06-28T16:41:42Z
I have this issue too in 9.9.8. Did you have a work around that worked?
Pavel
2022-06-30T14:28:21Z
Hi!
We are still on this issue, I'll post an update here.
Michael Fjellström
2022-07-18T12:10:21Z
Originally Posted by: Nick Weckman 

Running into an issue where the behavior of a Condition/Action in a loop is no longer functioning the same way. Here is my process in a nutshell:

1. grab a list of keys via SQL
2. for each key, run a stored procedure via SQL to create a payload
3. send out the payload via an HTTP task UNLESS the payload is blank, which I check through a condition on this task. If it IS blank, the condition has the Action of "On Match All, Don't wait, Next"
4. loop through steps 2 and 3 for each value in 1.
5. run an update via SQL

My issue is, that previously, before the upgrade, if a payload was blank, and therefore my HTTP task was skipped, it would go to the next value in step 1 and proceed as normal. No problem

Since the upgrade, if a payload is blank, it still skips the HTTP task, however, it does not go to the next value in step 1, instead it exits out of the loop and goes to step 5.


Hi!

Could you please try this workaround for your issue:

Create job variable
Add Set job variable task being the first task in the loop, set variable to CurrentXValue of the loop. Please make sure "Translate value to constant" is checked.
Use job variable for the condition.

Thanks in advance for any help here. Happy to provide more info if it helps.



bfreer3523
2022-08-03T22:25:30Z
I ran into the same issue in 9.9.7. One workaround is to move the task that has a condition into a separate job, and then call that job from within the loop instead, and pass any variables needed as parameters. If the condition is in a separate job it doesn't break the loop when the condition fails.
thomas
2022-08-04T06:40:13Z
It is ok with workarounds if one is forced to use this version ov VC, but this issue has to be fixed. The behaviour of conditions cannot change between version. It can break logic everywhere in a production system.
Michael Fjellström
2022-08-04T07:44:09Z
Yes - please upgrade to the latest version to fix this.
thomas
2022-08-04T14:01:18Z
Great! didn't see it had been fixed
bfreer3523
2022-08-08T01:06:11Z
I tried upgrading to 9.9.8 but I'm still seeing the same behavior. Specifically my job is attempting to copy files from one folder to another with each pass through the loop. If any files were copied, then an e-mail is sent with a list of the files. The issue is that if the condition on the e-mail task isn't met, the loop is stopped, unless the e-mail task is called from a separate job.
Michael Fjellström
2022-08-09T08:53:43Z
Originally Posted by: bfreer3523 

I tried upgrading to 9.9.8 but I'm still seeing the same behavior. Specifically my job is attempting to copy files from one folder to another with each pass through the loop. If any files were copied, then an e-mail is sent with a list of the files. The issue is that if the condition on the e-mail task isn't met, the loop is stopped, unless the e-mail task is called from a separate job.



In which version does this work without issues for you?
Please create a simplified job that can reproduce your issue and mail it to support@visualcron.com
NeuVisualCron
2023-02-24T14:54:41Z
Was this issue ever resolved?
Michael Fjellström
2023-02-25T03:49:56Z
Originally Posted by: NeuVisualCron 

Was this issue ever resolved?[/quote

Most likely! It was either a bug or misconfiguration, whichever it was, we don't leave things unsolved. But it was quite some time ago so I can't recall. Please send a ticket to support@visualcron.com if you're having any issues currently and we will gladly help you out.

CAG_DS
2023-03-19T15:49:21Z
This is still an issue in version 9.9.12 and in version 10.0.0

It worked in version 9.9.5 and after upgrading to 9.9.12 it stopped working. I also tested it in version 10.0.0 without any success.

I read file "source.txt"
In a loop I write to "destination.txt", on condition that "current loop line" contains a date in this month.
The loop stops on the first line that does not match the conditions even though I set action to "on match none" "next".

I tried the work around with job variable, but that did not work either.

I would very much appreciate a solution to this issue

Best regards

2024-10-09T22:35:23Z
I know this is an older post, but we were experiencing a similar issue in version 11.2.2 and I thought I'd post what we found so that it might help others with the same issue. This seems like a bug to me, but maybe there is some explanation as to why it works this way.

When initializing a loop, we were using the "PrevTask" variable to reference the Task that was retrieving the list of values to loop over. This worked in earlier versions before we upgraded and this method was preferred because we often clone jobs, so the fewer explicit Variable Id's we need to update when doing so the better.

PROBLEM:
For Each Row X in: {TASK(PrevTask|StdOut)}

While this worked in most instances, we experienced issues anytime a Task within the loop had a Condition tied to it that was not met. At this point, the Action "On Match None > Next" would get triggered and the variable that was initialized for the For..Each loop would get completely wiped out. This meant that once the loop completed, it would no longer contain the values needed for its next iteration over the value list that was originally set because it no longer existed.

The fix was to completely avoid using the "PrevTask" variable in the For..Each loop initialization, and instead, explicitly reference the Task Id for the Task responsible for retrieving the list of items to loop over (Ex. List Files In Directory).

FIX:
For Each Row X in: {TASK(faa28d28-9902-4e66-afc2-8deee479e471|StdOut)}

Hope this helps someone else in need of an answer.

Scroll to Top