Uploaded image for project: 'UX Product'
  1. UX Product
  2. UXPROD-3434

Implement new finance transaction model to protect against parallel processing

    XMLWordPrintable

Details

    • New Feature
    • Status: Closed (View Workflow)
    • P3
    • Resolution: Duplicate
    • None
    • None
    • None
    • Nolana (R3 2022)
    • Out of scope
    • Thunderjet
    • 0
    • R2
    • R2

    Description

      Current situation or problem: When 2 users or separate mods run operations in parallel, they can send both summaries before sending the operations. mod-finance-storage is not saving previous summaries with the same id (which in practice is the order id for encumbrances), so one of the summaries sent will have no effect, resulting in an error for the second one:

      "All expected transactions already processed"

      In scope

      Redesign transaction summaries to allow parallel usage. Using unique ids (as opposed to for instance order ids)  could be part of the solution, but we don't want to accumulate too many records in the summary tables, so they would have to be deleted when no longer in use.

       When redesigning, care should be taken to avoid requiring a check for 404 errors, as was done in mod-orders' TransactionSummariesService.java for MODORDERS-545 (normal operations should not report errors in the logs).

      Out of scope

      Use case(s)

      Proposed solution/stories
      Wiki : https://wiki.folio.org/display/DD/Support+for+transaction+processing+by+two+or+more+users+in+parallel

      Links to additional info

      Questions

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                dennisbridges Dennis Bridges
                dennisbridges Dennis Bridges
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  TestRail: Runs

                    TestRail: Cases