I am dealing with exceptions and i am using Enterprise Framework. i set “MaxRetryNumber” in the config file to 3. When the process runs for first time it retries but when the process run again after the retry i am getting this message in the output “Process finished due to no more transaction data” and the process ended. The status in the orchestrator is “Failed”.
So this is the problem i am facing because the process needs to run for 3 times and when it complete retrying 3 times so it will send en email but the process is ended with this message “No Transaction Data. Process finished due to no more transaction data” just after 1 retrial.
The condition for the retrial is “io_RetryNumber>=cint(in_Config(“MaxRetryNumber”))” so its means like this “1>=3” but its strange why it just end the transation with the status as “Failed”.
The process will retry 3 times if there are system exceptions. 3 retries then it will close if there is a system exception each time.
It sounds as if your process is not encountering system exceptions and is completing as no transaction data is being collected for processing.
No, i am getting a system exception as i create that exception by changing the selector to test the retry mechanism. but it retries for only one time and then close and update the status of transaction to failed in the orchestrator, as it needed to retry for 3 times.
Can you post the system exception message?
{
“message”: “Select: Cannot find the UI element corresponding to this selector: ”,
“level”: “Error”,
“logType”: “Default”,
“timeStamp”: “04:36:56”,
“processVersion”: “1.0.0.0”,
“jobId”: “e5997ab1-18af-4eeb-a23d-4197f9612831”,
“robotName”: “AAAA”,
“machineId”: 5,
“fileName”: “Search”,
“logF_BusinessProcessName”: “Framework”
}
The above exception message shows that in your Search file name, one of the activity is not able to find the selector.
Can you please debug your process and check at which point, its throwing that exception.
Yes i know where is the exception as i am testing the retrying mechanism that’s why i create this exception for testing
When a system exception is encountered, the Framework updates the Transaction status here:
Your logs should have a message that indicates a retry was initiated.
You need to debug your process step by step to ensure that once the system exception is thrown, the flow moves to this part of the process where system exceptions are handled and retries invoked. You can do this by putting ‘Write Line’ activities at each crossroads in the workflow. This will help you track it.
You may also run it in Debug mode with slow steps to track the flow.
One possibility is that you need to have in_TransactionItem populated to ensure the retry is initiated. You can see the condition here:
in_TransactionItem isNot Nothing AndAlso (in_TransactionItem.GetType is GetType(Uipath.Core.QueueItem))
Yes i put write line here and everything is looking as working as i mentioned above the condition is “io_RetryNumber>=cint(in_Config(“MaxRetryNumber”))” so when i write the values of io_RetryNumber and MaxRetryNumber, the result is 1>=3 so the condition is ok but it says “No Transaction Data. Process finished due to no more transaction data” and end the process.
Can you please check whether the data is available in queue or not. If not, then it’s correct behavior. As per ReFramework flow in Get Transaction Data, it’ll check for data first using GetTransaction Item from Orchestrator after Init State. Based upon the condition, it’ll go to the respective state machines.
- If there is no new data, it’ll go to close state machine and close all applications.
- If there is new data, it’ll go to Process Transaction state machine and invoke Process.Xaml file.
Please verify once and let us know.
@singhonkar yes i have 3 queues in the orchestrator but for all the queues the process runs for only 1 time and when all the queues retries for 1 time, the status of all the queues set to failed
If possible, can you share your xaml files. I’ll go through it and get back to you .
Where are you setting this condition?
It sounds to me as if you are fundamentally editing the Framework flow. Unfortunately I cannot help further without seeing your code.