cancel
Showing results for 
Search instead for 
Did you mean: 

Unconditional wait

Anonymous
Not applicable
could anyone give an example for an unconditional wait? 
and why it's not preferable to use?


------------------------------
Sanaa Fallah
------------------------------
1 BEST ANSWER

Helpful Answers

Hi Sanaa,

You should be using Conditional Wait wherever possible. Conditional waits are used for dynamically determining if an element exists or not for the specified element in you Application Tree at the runtime. Since in a DEV environment and in a PROD environment, the target application to be automated can have different loading times, we specify a maximum time out indicating that within that time if the element exists then, we need to move ahead or throw a time out. Below is the example of a conditional wait:

33472.png

33473.png

Now coming to Unconditional waits or Throttle as they are known, here we do not put any condition and just give a specific time for our execution to pause. As the name suggests, you do not provide any condition for the element here and just provide the timeout value which indicates the static time the execution of the workflow will be paused for at that point of time.

The problem here is that the wait is not dynamic. If today we see that a webpage loads with 10 seconds and we put this time in our unconditional wait and let say tomorrow when we load the same web page due to server issue or the slowness of the environment or due to different network bandwidth, the web page loads after more than 10 seconds, then our workflow will fail. Basically solution is not that intelligent to respond to these scenarios. Hence, it is not recommended. However, these can be used in combination with unconditional wait stages depending on the use case. For example, if I need to click in a dropdown element and then again click with any of the element in the list that gets shown and if I see that there is a very minute time within which that list can be opened up on the screen I can use a unconditional wait again better option would be a conditional one here as well but if you are very sure that it is never going to take much time you can still go for a throttle stage or an unconditional stage.
Below is the example of an unconditional wait:

33474.png




As a best practice in Blue Prism, always consider more time than less time for waiting. Waiting more can make your automation slow but waiting less can increase the chances of it breaking!

------------------------------
----------------------------------
Hope it helps you and if it resolves you query please mark it as the best answer so that others having the same problem can track the answer easily

Regards,
Devneet Mohanty
Intelligent Process Automation Consultant | Sr. Consultant - Automation Developer,
Wonderbotz India Pvt. Ltd.
Blue Prism Community MVP | Blue Prism 7x Certified Professional
Website: https://devneet.github.io/
Email: devneetmohanty07@gmail.com

----------------------------------
------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

View answer in original post

5 REPLIES 5

Hi Sanaa,

You should be using Conditional Wait wherever possible. Conditional waits are used for dynamically determining if an element exists or not for the specified element in you Application Tree at the runtime. Since in a DEV environment and in a PROD environment, the target application to be automated can have different loading times, we specify a maximum time out indicating that within that time if the element exists then, we need to move ahead or throw a time out. Below is the example of a conditional wait:

33472.png

33473.png

Now coming to Unconditional waits or Throttle as they are known, here we do not put any condition and just give a specific time for our execution to pause. As the name suggests, you do not provide any condition for the element here and just provide the timeout value which indicates the static time the execution of the workflow will be paused for at that point of time.

The problem here is that the wait is not dynamic. If today we see that a webpage loads with 10 seconds and we put this time in our unconditional wait and let say tomorrow when we load the same web page due to server issue or the slowness of the environment or due to different network bandwidth, the web page loads after more than 10 seconds, then our workflow will fail. Basically solution is not that intelligent to respond to these scenarios. Hence, it is not recommended. However, these can be used in combination with unconditional wait stages depending on the use case. For example, if I need to click in a dropdown element and then again click with any of the element in the list that gets shown and if I see that there is a very minute time within which that list can be opened up on the screen I can use a unconditional wait again better option would be a conditional one here as well but if you are very sure that it is never going to take much time you can still go for a throttle stage or an unconditional stage.
Below is the example of an unconditional wait:

33474.png




As a best practice in Blue Prism, always consider more time than less time for waiting. Waiting more can make your automation slow but waiting less can increase the chances of it breaking!

------------------------------
----------------------------------
Hope it helps you and if it resolves you query please mark it as the best answer so that others having the same problem can track the answer easily

Regards,
Devneet Mohanty
Intelligent Process Automation Consultant | Sr. Consultant - Automation Developer,
Wonderbotz India Pvt. Ltd.
Blue Prism Community MVP | Blue Prism 7x Certified Professional
Website: https://devneet.github.io/
Email: devneetmohanty07@gmail.com

----------------------------------
------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

Anonymous
Not applicable
Thank you so much, so what's the difference between throttle and unconditional wait?


------------------------------
Sanaa Fallah
------------------------------

Hi Sanaa,

Unconditional wait is also called as Throttle as they are the same thing which indicates that a static wait has been used instead of a dynamic wait with a condition for an element.

------------------------------
----------------------------------
Hope it helps you and if it resolves you query please mark it as the best answer so that others having the same problem can track the answer easily

Regards,
Devneet Mohanty
Intelligent Process Automation Consultant | Sr. Consultant - Automation Developer,
Wonderbotz India Pvt. Ltd.
Blue Prism Community MVP | Blue Prism 7x Certified Professional
Website: https://devneet.github.io/
Email: devneetmohanty07@gmail.com

----------------------------------
------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

Let me see if I understand this. A Throttle and an Unconditional Wait are the same thing? So, judging by the BP University course, the only difference is where you use them? i.e. You use, for some reason, a throttle (AKA unconditional wait) at the start of every page, but you use an unconditional wait (AKA throttle) within the page to account for system time lags like a save action that doesn't change state. However, it's suggested not to use the throttle/unconditional wait within the page... only at the beginning?

If that's the case, why even have 2 names for the same thing. Also, it just seems really dangerous to only rely on a time delay to account for background processing.

Thanks,

Carlo.

------------------------------
Carlo Robazza
------------------------------

Hi Carlo,

You are completely right, Unconditional wait is exactly the same as Throttle. I have no clue why the word Throttle is even used. Personally, I tend to avoid Throttle and stick to Unconditional and Dynamic wait. 

That said, I do hope BP avoids using different names of the same thing in the certification process, it is after all a knowledge test and not a language test.

------------------------------
Happy coding!
---------------
Paul
Sweden
------------------------------
Happy coding!
Paul, Sweden
(By all means, do not mark this as the best answer!)