I don’t have an actual issue/error here. I am just seeking advice on an alternative way to accomplish my goal.
In my Merge Tools application, you can merge customers and vendors (at this time...I hope to add other merge options later). However, I want to prevent a user from merging vendors and customers simultaneously as this will surely cause errors as common tables are being modified by both processes in transactions and I don’t want changes from one process overwriting changes from the other process.
Each merge process has it’s own screen. I currently have it so that you cannot process a merge unless the users are locked out.
The merge buttons are disabled unless the system is locked out. Here they are enabled as I have the Lockout turned on.
To prevent a user from performing merges on more than one option, I may need to create a screen to do something similar to the Apply Updates screen.
I am thinking of creating a form that the user can select the current merge process being performed. But that adds a bit more complexity. I would like to have the program simply lock out other merge tools when one merge tool is being used.
A custom “lockout” screen would work as I could use a custom table to track if a merge is being processed (similar to the UPLock table).
I would prefer to have a way to put a record in the table to “lock” other merge processes when one merge process is underway by adding a record to a lock table. First, the page would check to see if any other merges are happening. Then, after the merge customer process is done, it removes the lock record from the custom table. The issue I see is that if a user is processing a customer merge and simply closes the screen, the table would not be updated to show that the customer merge is no longer being processed. This would lock out any other merge processors even if nothing is being done any longer.
I think I will need to create a new screen and table to manage which merge process is being performed.
Does anyone have any other ideas?