Done
Details
Assignee
DamienDamienReporter
DamienDamienLabels
Priority
P1Story Points
1Sprint
NoneDevelopment Team
ThunderjetFix versions
Release
Lotus (R1 2022) Bug FixRCA Group
Implementation coding issueTestRail: Cases
Open TestRail: CasesTestRail: Runs
Open TestRail: Runs
Details
Details
Assignee
Damien
DamienReporter
Damien
DamienLabels
Priority
Story Points
1
Sprint
None
Development Team
Thunderjet
Fix versions
Release
Lotus (R1 2022) Bug Fix
RCA Group
Implementation coding issue
TestRail: Cases
Open TestRail: Cases
TestRail: Runs
Open TestRail: Runs
Created April 8, 2022 at 8:35 PM
Updated May 17, 2022 at 5:31 PM
Resolved April 12, 2022 at 3:43 PM
Overview:
When an error occurs in createTransaction or updateTransaction, the temporary transactions are currently not cleaned up. Because the same id is currently used to process transactions for orders or invoices again, and because processAllOrNothing compares the number of temporary transactions to the number of expected transactions, this causes the processing of failed temporary transactions with some new ones, and the subsequent error "All expected transactions already processed".
Since the calling mods will give up on the whole set of transactions if a single one fails, we should remove all the related temporary transactions in case of failure, for any case of failure (including validation).
will resolve this issue, but the resolution is too complex to be included in a hot fix. On the other hand, cleaning up the temp transactions is easy and can be included in a hot fix.
Steps to Reproduce:
See related stories.
Expected Results:
User can try again if an operation (such as invoice approval) fails.
Actual Results:
The operation keeps failing with the message "All expected transactions already processed".
Additional Information:
In AllOrNothingTransactionService, deleteTempTransactions should be called if there is an error within createTransaction, updateTransaction or processAllOrNothing.
Interested parties: