cancel
Showing results for 
Search instead for 
Did you mean: 

Error when running process from control room

MikkelHansen
Level 2
Hello all

I am running into a problem when i try to run my process from the control room. The process is made as part of the foundation training, loading orders from a queue and inputting them into the Centrix program, so far so good. If i run it in the Process studio it works great, but when i run it in the control room it gets a little strange, for the first item, there is no problem. But on the second item it always terminates and gives me an error:

"Unable to match any window with the query items"

In the Business object, I have a wait condition to check if the input box exist, which works on the first item, but on the second item it seems to skip this step completely. Is there something about resetting the value of wait stages i am missing? What confuses me the most is that the entire process can run in Studio, and that it can actually run the first item in the control room.

Can anyone tell me what i might be doing wrong?

Specific page in the object that fails, and process below.
36531.png
36532.png
6 REPLIES 6

mkumar407
Level 7
Hey Mikkel,

Please try using attach before waiting for any element. This will help you to ensure object is connected to application.
Also, if you have used any headers in identifying elements.. check if that can be set as dynamic.

Regards,

steven.boggs
Staff
Staff
Hi Mikkel,

In addition to Manish's helpful suggestions above, we also recommend as a best-practice to check all of the attributes used to match (sort by the 'Match?' column) and check each of the values. Change the matching attributes until a reliable match can be made which is resilient to contextual changes.

remko.bouwens
Level 5
Hey Mikkel,

In your process, what happens after the input order?
Does the application reset to the main page/menu?
Because if that doesn't happen, the next item will try and navigate again, which might fail (since it's already there). 
After working item, reset to screen(s) in such a way that the next item can be worked properly.

Regards

MikkelHansen
Level 2
Thanks for the help everyone. It seems to be something that happens when i go to the absolutely highest speed. When i try to run the process just a bit below, it works completely fine, But when I run it at max speed it does not. I think for a very small amount of time the Window might not technically exist or something, and so i get an error. However I have tried adding a throttle on the step, but that does not seem to help. I will try out some other things and get back if I figure it out.

remko.bouwens
Level 5
You could try the options below:
- Add a static wait off 1 second before the action, enabling the window to appear/exist. Perhaps start with 1 second (or more) and keep shortening the wait period and see what works.
- Add retry logic (with a small wait). Catch the exception when it's thrown an retry the action (with a maximum of about 3 of 5 times) with a short wait after a try. Should it still not work after the maximum amount of tries, then stop processing the item.

Hope something like this can help you.

MikkelHansen
Level 2

So i found two fixes:

1. Adding a throttle at the beginning of the step, before the conditional wait step (i thought i had already tried this, but perhaps i had not saved the changes)
2. Adding another conditional wait step, which confirms that the window I am looking for the input in exists, after that it checks if the input exists, and the it inputs data.

I know that throttles are described as best practice, but to me it seems a bit non optimal, if i add extra seconds with each step, If the system has to processer thousands of items that does add up in the end. So i am very happy that the 2nd fix works. However, I am uncertain as to why this is needed. Could it be that as i suggested earlier, that in the short span between clicking the button to navigating to the page, and for the new window to show up (it just changes the screen in the program, so nothing you can see with your eyes) it tries to spy the element and It can't because the window does not exist?

I am happy that it works now, but would love to know exactly why it failed, so i can avoid it in the future.