Uploaded image for project: 'mod-invoice'
  1. mod-invoice

Batch voucher export hangs at 'Pending' indefinitely for batches with multiple vouchers, no export file produced



    • Bug
    • Status: Closed (View Workflow)
    • P1
    • Resolution: Done
    • None
    • 5.6.3
    • ACQ Sprint 166
    • 3
    • Thunderjet
    • Orchid (R1 2023) Service Patch #1
    • Yes
    • Approved at May 30
    • !!!ALL!!!
    • Legitimate regression
    • Orchid (R1 2023)


      Overview: Batch voucher export in Orchid hangs at 'Pending' indefinitely for multiple voucher export and does not produce an export file (nor an error).
      Steps to Reproduce:

      1. Log into FOLIO Orchid as a user with Invoice creation, approval, payment and batch voucher export permission
      2. Select the Invoices app.
      3. Create, approve and pay multiple invoices with 'Export to accounting' selected.
      4. From Invoices > Actions select Batch Voucher Export
      5. Select a Batch group (FOLIO default) and > Run manual export.

      Expected Results: Export status enters Pending, then progresses to Generated - with a downloadable export file generated and available.
      Actual Results: Export status enters Pending and remains so indefinitely. No export file generated or available, no errors reported. (Cannot subsequently process vouchers for payment.)

      Additional Information:

      • Reproduced in folio-orchid.dev.folio.org environment.
      • Single voucher/invoice export generates a downloadable file OK.
      • Same simple invoices created for successful single voucher/invoice export were created for multiple voucher export.
      • Manual export only attempted. No schedule set in Batch group config.
      • Export format set to XML

      URL: https://folio-orchid.dev.folio.org/invoice/voucher-export?exportToAccounting=true&limit=50&offset=0
      Interested parties:
      cc: kgambrell , lbraginsky 


      CSP justification

      Describe issue impact on business

      This service is what allows a library to export financial activity to an accounts payable department. Without this funcitonality it would not be possible for libraries to pay vendors in a timely manner. Late payments could result in additional costs incurred by the library, late fees, breach of contract etc.

      What institutions are affected? (field “Effected Institutions” in Jira to be populated)


      What is the workaround if exists?

      Approve 1 invoice at a time and export 1 voucher at a time. Not a reasonable workaround for libraries that approve 100s of invoices for multiple vendors per month

      What areas will be impacted by fix (i.e. what areas need to be retested)

      • Run batch voucher export
      • Upload batch voucher export to ftp
      • Download batch voucher export file from UI

      Brief explanation of technical implementation and the level of effort (in workdays) and technical risk (low/medium/high)

      1 day work (JIRAs)
      Negative case fixed by avoiding NPE inside error handler.
      Positive case (with more than 1 invoice) fixed by encoding URL before making request for retrieving invoice lines as part of batch voucher export flow

      Low technical risk - This fix involves a change to logic that is only used for batch voucher export. This functionality occurs at the end of the workflow and thus testing can be very targeted.

      Brief explanation of testing required and level of effort (in workdays). Provide test plan agreed with by QA Manager and PO.

      TBD - 0.5 days work

      Test plan:

      Each scenario where the particular code would be triggered will need to be tested with >1 records of the appropriate type. Test rails test cases will be designed for each scenario and the test plan is to complete each of these test cases successfully. One for >1 voucher of the same vendor and One for >1 voucher with different vendors but assigned to the same batch group

      The process will be:


      What is the roll back plan in case the fix does not work?

      The fix will be implemented by a patch version of <<module>> and an update to platform-complete to depend on the newly released patch version. If the fix doesn't work / causes issues the roll back will be a further patch version of <<module>> with the code changes reverted, and a further update to platform-complete to depend on the patch version with the reverted changes

      TestRail: Results


          1. Batch_voucher_export_for_different_vendors_(Snapshot).mp4
            4.68 MB
          2. Batch_voucher_export_for_one_vendor_(Snapshot).mp4
            6.36 MB
          3. C353217.mp4
            6.73 MB
          4. C396358.mp4
            6.04 MB
          5. C396367.mp4
            6.80 MB
          6. C396369.mp4
            8.01 MB
          7. multi-voucher-batch-export.PNG
            62 kB
          8. Voucher_export_(Orchid).mp4
            5.55 MB

          Issue Links



                dennisbridges Dennis Bridges
                gerardClifton Gerard Clifton
                0 Vote for this issue
                8 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases