There is only two exceptions here one is Business Exception and second is System Exception.
We don’t have failed exception, if any unknown exception occurs it will consider it as System Exception.
If we will discuss about flowing of states.
→ If the Transaction status is Success it will increment the transaction item and go for the next transaction started from Get transaction item state.
→ If the Transaction status is Business Exception it will consider the present transaction as Business exception and increment the transaction item and go for the next transaction started from Get transaction item state.
→ If the Transaction status is System Exception it will consider it as failed. If we give any retry count weather in Config file or in queue creation, it will create a new transaction item with the failed transaction item details. It will start from the Initialization.
When a business rule exception occurs, the framework typically logs the exception details and moves to the “Get Transaction Data” state. This is because a business rule exception is considered a known issue in the data or logic of the transaction, and the process may need to retry processing that transaction or proceed to the next one.
Success:
If the process is successful (meaning no exceptions occur during the transaction processing), the framework will also transition to the “Get Transaction Data” state. This is part of the cyclic nature of the REFramework, where it continuously retrieves and processes transactions.
Application or System Rule Exception:
If an application or system rule exception occurs, the framework is designed to transition to the “Init” state. The “Init” state is responsible for initializing the environment and preparing the application for transaction processing. Handling application or system rule exceptions at the “Init” state allows the robot to reset and prepare for the next set of transactions.
Transaction Failed :
If a general exception occurs that is not specifically handled as a business rule, application rule, or system exception, the framework may follow a predefined exception handling mechanism. Typically, the REFramework provides a mechanism to catch unhandled exceptions and log them. Depending on your implementation, it might transition to the “End Process” state, which is responsible for finalizing the process and performing any necessary cleanup.
→ If the Transaction status is System Exception it will consider it as failed. If we give any retry count weather in Config file or in queue creation, it will create a new transaction item with the failed transaction item details. It will start from the Initialization.