Reframework states

Hi,
In my REFRamework process which does UI automation, if an element is not found System Exception is thrown. But what does retry transaction do? Does it just try to find the element that threw System Exception?

Even though I am not ending the application in my End process, the application is shutting down. Why is that? Does the End process automatically shuts down the apps?

Thank you,

Hi @A_Learner

If a element is not found and it throws an System Exception it will go back to the Init state and launch the browser again if you given any process in the InitAllApplications.xaml. When you create a queue you have an AutoRetry option which is set to 1 by default you can remove that option so that once system exception is throwed it won’t retry the same queue. If you launching any web application in InitAllApplications.xaml make sure not to keep any workflow of adding to queue because once system exception is throwed it will kill all the process and launch the application and will add transactions to your queue.

If you have given anything in Kill Process.xaml it will all your applications when it goes to Init State and launch the web application.

I hope you will get an idea on this

Regards

Hi @A_Learner

It’s depending if you are using Queue or not. If you are using Queue and set AutoRetry, then a new Item (a copy) will be created in case System Exception. Disabling this option, the REF will get the next queue Item to process.

If you are using DataTable, the retry mecanism is set in Config file and the REF will process the same row for n times you set up.

In both cases, the REF will try to close the applications and if it fails, it will kill them.

This behavior is observes in SetTransactionStatus.xaml → System Exception (Sequence) → Try closing applications

This way REF can return the application to initiate state to process the next (or same) queue item without additional logic like return to principal menu, cancel application transaction, waiting for application responding in freeze case etc then openning the applications again in Init State

Cheers

1 Like

Hi @A_Learner

If you have given the retry count when creation of Queues or in Config file. Then it will retry based on your retry count.

If you got the system exception in the Process state, it will retry based on your retry count. In the retry it will not retry the activity which failed, it will start retrying the same transaction item from the Initialization.

In the Set Transaction status xaml there is a close application activity which close the application before returning to the Initialization state if transaction item getting retry.

Check the below image for better understanding,

In the below image you can check if transaction item got system exception then it will go to Initialization,

Hope it helps!!

1 Like

@A_Learner

Retry transaction xaml will check the retry count number if there is a system exception and check if the retry number has reached the mac retry number or not…if reached it moves to next item else it would retry the current item and increases the retry number

After system exception in process xaml…it generally first goes to set transaction status…where close all applications and kill all applications is called…where it might close or kill the application

End process state is reached when all the transaction are completed

Cheers

1 Like

Thank you.

Specifically if a system exception happened, (retry count is set to zero). Then will it close applications and go to init state and process next transaction item?

If a system exception happened and retry count is greater than zero, then it close applications, go to init state and retry same transaction. In this case the transaction status will be set again?

Thanks

@A_Learner

For queues we font use retry count from config…instead we will use from queue retry count only and when an item faila in queue it is marked as retried and a new item is created in new state…if retry count>0 in queues else it will be marked a sfailed and no other items are created

Cheers

Yes @A_Learner

If there is no retry count, in this case also it will close all application and process the next transaction item.

In your second query, the Transaction item status set to retried and it will create a new transaction item with the same details in failed transaction item.

Hope it helps!!

1 Like

Thank you, @Anil_G
Not using queues. Using DataTable.

Regards,

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.