Retry mechanism is implemented in which workflow?
I have this confusion because set transaction status workflow belongs to the main workflow in one way.
Is there any better explanation?
Can you explain regarding the query you have?
implemented in retryCurrentTransaction workflow which is called by setTransactionStatus (System exception branch)
basically this transaction compares current retry count and max retry count, if max retries reached, then it will increment transactionNumber (wont retry), otherwise it will retry (transactionNumber stays the same)
Hi @Lak_Ui ,
Thank you for the reply.
Hi @jack.chan,
Yes, Perfectly described.
But setTransactionStatus is called from the process.xaml which is again a part of the main workflow.
So when asked, where is the retry mechanism implemented in REF, Should it be main workflow or setTransactionStatus workflow?
main calls setTransactionStatus calls retryCurrentTransaction
process.xaml DOESNT call setTransactionStatus, its called from the process state in main xaml
im still not sure whats the answer if main and settransactionStatus are your only 2 choices, because setTransactionstatus decides whether to retry or not, but the actual retry is done in main.xaml. Is this a multiple choice question that you have to answer?
Hi @jack.chan ,
yes, process workflow. My bad!
I was asked this in a live forum in a discussion and I am not exactly aware of the answer.
You did state it right, that setTransactionstatus decides whether to retry or not, but its enclosed in the main workflow.
So, I’m reaching out to other forum members to get this clarified!
Hi @Ray_Sha1 ,
This seems to be a bit confusing as the SetTransactionStatus
has RetryCurrentTransaction
workflow, which is the workflow responsible for Handling the Retries.
But whereas, the Retry is Performed, when the RetryNumber
is Lesser than the MaxRetry
Number, Which is actually Performed in the Transition
of the Main
workflow deciding to loop back to the Init
or not.
So I would say it is rather a Combination of Both for the Retry Mechanism to be Implemented.
But if we are stating according to the Docs, then I think the RetryCurrentTransaction
or SetTransactionStatus
should be the correct answer.
Hey @supermanPunch,
Thank you for the input and insights with docs.
-
It is always recommended to built the use case in different workflows (each workflow have chunks of code) and call these workflows anywhere. That is what REF template follows as well
-
Coming to your point, as like I mentioned above each workflow has chunks of code, ex: Init AllApplications workflow has login application part, CloseAllApplications workflow has close applications part, similar to this, RetrycurrentTransaction workflow has retrying mechanism. So, you can say the retrying mechanism happens in RetrycurrentTransaction workflow
-
Coming to your question, Since it is called in Main workflow, you cannot say that retrying happens in Main itself. The workflows can be called anywhere that depends on your requirement. It can be called in Main or Process or some other workflow. So, we should always mention the workflow name at where exactly the action happening