[UXPROD-3700] UI-controlled pessimistic locking Created: 03/Jun/22  Updated: 30/Nov/23

Status: Open
Project: UX Product
Components: None
Affects versions: None
Fix versions: None

Type: New Feature Priority: TBD
Reporter: Damien Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Issue links:
Defines
defines UXPROD-3431 Acquisitions (Thunderjet) - Tech Debt... In Refinement
defines UXPROD-3666 Improve support for parallel processing In Refinement
Gantt End to Start
has to be done after UXPROD-3058 Optimistic Locking In Progress
Development Team: Thunderjet
PO Rank: 0

 Description   

Current situation or problem:
After optimistic locking is implemented in all apps, we have resolved data integrity issues. But it can be frustrating for users to perform many changes in a record only to be told when saving that it cannot be done. Currently they have to open the new version in a new tab and copy their changes one by one from one tab to another.

In scope
The idea is to create a new mod that will take entries of record paths in use, and that can be queried for these paths to check if a record is in use. Entries would have a timeout (like 1 hour), and would be removed afterwards. It would provide a kind of pessimistic locking, but with the option for users to bypass it.
For apps to use this system, no change would be needed on backend. UI would request if a record path is in use, and warn the user if it is, with the name of the user. UI would be responsible for requesting use and releasing it when a record is saved or the request is cancelled. It is understood that sometimes entries will not be released, hence the timeout + an option for users to bypass the lock.
The new mod should be usable by any FOLIO app. It should not have any code specific to acquisitions.

Out of scope
This is only meant as a UI improvement, as a convenience for users. It is not meant to resolve issues of data integrity and consistency.

Use case(s)
When several users are likely to edit the same resource at the same time, using the same app.

Proposed solution/stories

  • Define a user interface
  • New backend mod
  • POST / GET to lock a resource or see if it is locked, by resource path. Save the resource path, the time it was added, and the user name. Release entries automatically after a timeout (configurable?).
  • UI: use this new mod with apps like Orders, Invoice, Finance.

Links to additional info

Questions


Generated at Fri Feb 09 00:34:06 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.