Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page contains examples of issues with Data consistency in Folio. The issues could fall into one of the following categories:

  • There is no logic to make sure a data is consistent across a set of modules

  • There is a logic to perform data consistency, but it isn't reliable and can lead to inconsistent data in a set of modules

Business Flows

Approve invoice (mod-invoice)

  1. Fetch invoice (mod-invoice → mod-invoice-storage)

  2. Process prorated adjustment (mod-invoice → mod-invoice-storage)

2.1. Fetch invoice lines by invoice id (mod-invoice → mod-invoice-storage)
2.2. Persist invoice lines (mod-invoice → mod-invoice-storage)

3. Update invoice lines with encumbrance transactions (mod-finance → mod-finance-storage)

4. Check enough money in budget (mod-finance → mod-finance-storage)

5. Persist invoice lines (mod-invoice → mod-invoice-storage)

6. Check expense classes (mod-finance → mod-finance-storage)

7. Create/persist pending payment transaction (mod-finance → mod-finance-storage)

8. Create/persist voucher with voucher lines  (mod-invoice → mod-invoice-storage)

58.1. Fetch voucher lines by invoice id (mod-invoice → mod-invoice-storage)
58.2. Fetch invoice lines by invoice id (mod-invoice → mod-invoice-storage)
58.3. Persist voucher (mod-invoice → mod-invoice-storage)
58.4. Persist voucher lines (mod-invoice → mod-invoice-storage)

       8 9. Persist invoice with new status (mod-invoice → mod-invoice-storage)

Pay invoice (mod-invoice)

  1. Fetch invoice (mod-invoice → mod-invoice-storage)

  2. Process prorated adjustment (mod-invoice → mod-invoice-storage)

2.1. Fetch invoice lines by invoice id (mod-invoice → mod-invoice-storage)
2.2. Persist invoice lines (mod-invoice → mod-invoice-storage)

3. Handle payment and credits transactions (mod-finance → mod-finance-storage)

4. Persist invoice with new status (mod-invoice → mod-invoice-storage)

5. Update voucher (mod-invoice)

5.1. Fetch voucher lines by invoice id (mod-invoice → mod-invoice-storage)
5.2. Fetch invoice lines by invoice id (mod-invoice → mod-invoice-storage)
5.3. Persist voucher (mod-invoice → mod-invoice-storage)
5.4. Persist voucher lines (mod-invoice → mod-invoice-storage)

Open order : transition from pending to open status (mod-orders)

  1. Fetch order (mod-orders → mod-orders-storage)

  2. Fetch order lines (mod-orders → mod-orders-storage)
  3. Check locations and pieces consistency (mod-inventory → mod-inventory-storage)

  4. Handle purchase order lines (POL)3.1. Delete existing POL (mod-orders → mod-orders-storage)

4.2. Persist changes in POL (mod-orders → mod-orders-storage)
4.3. Release POL encumbrance transactions (mod-finance → mod-finance-storage)

5. Persist order with new status (mod-orders → mod-orders

...

-storage)

Unopen order : transition from open to pending status (mod-orders)

  1. Fetch order (mod-orders → mod-orders-storage)

  2. Fetch POL encumbrance transactions (mod-finance → mod-finance-storage)
  3. Make/Persist encumbrances pending (mod-finance → mod-finance-storage)

  4. Update/Persist order transaction summary  (mod-finance → mod-finance-storage)

  5. Update/Persist transactions  (mod-finance → mod-finance-storage)

  6. Make/Persist POL pending (mod-orders → mod-orders-storage)

  7. Persist order with new status (mod-orders → mod-orders-storage)

Data redundancy in models