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?
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.
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
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.
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
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?
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
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.