I have run into a problem where I am filling out a pdf that has underlying JS that will throw a pop up when there is an incompatible input type (i.e. input letters into a date that requires a specific format). My current design is to have my input activities in a parallel with a while loop that has a check for the pop up window and is able to close it. The problem lies when the pop up occurs, the loop in the parallel does not immediately go next, which causes other activities still try to input while the pop up is blocking the form. Is there a way I can make sure the pop up is found immediately while using parallel and not adding a check at the end of every activity?
A better way to do this is to check for that popup after you enter data into each field. An efficient way to do this is to write a separate XAML that contains the “check for error popup” steps, and just call Invoke Workflow for it after each data entry.
I tried creating an error catcher workflow and invoke it after each activity and I found it still would not keep the required order to complete closing the pop up. I believe my problem is coming from the lack of order within parallel. Because I need to check after every input, I was originally hoping my “On Element Appear” loop would be constantly running in the back with the potential to catch, but that is clearly not the case. So what I need is an alternative to make sure that I can get a click off to close the pop up after each input, but maintain some high speed as I need this workflow to be as fast as possible.
I should also note I tried adding the click to close in a sequence with each input and I came across the issue of how parallel seems to do whatever it technically finishes first and can be entered into the form, causing a mass amount of the clicks to ignore order and just happen before all the type intos. This causes a large stall at the start and bad data to cause a pop up that will never be closed. I even tried parallel activities within parallel activities but that seemed to just follow the priority of the original instead of focusing on the rooted parallels first.
Just do it without parallel. Normal flow. Enter data, check for popup, click if necessary, enter data, check for popup, repeat…