How can I prevent multiple users from accessing the same related action?

Hello:
Does anyone have a solution for how to avoid 2 users simultaneously triggering the same related action on the same record (assuming the related action would overwrite the record values).
We need a mutex solution, but I am not sure how to do this in Appian except through a database solution. Does anyone know of a mutex solution out-of-the-box in Appian?

OriginalPostID-215481

OriginalPostID-215481

  Discussion posts and replies are publicly visible

Parents
  • Small update on my idea. The attached XSD creates a table that requires unique values in the field "lock". The problem was to find a way to insert data that is OK with failing writes to DB. So I created a process model with a "Query Database" node and set "Pause Node on Error" to false. The node output "Error Occured" tells me whether writing the lock was successful.

    So to lock a record I add the sub process "Write Lock" as a first node, then some other logic and the form. In the form I can tell my user about a possible lock. A last sub process makes sure that a written lock is removed.

    I think this is close enough to a real system supported mutex as checking and setting the lock is a single operation. And it will work for older Appian versions.

    TS_Lock (1).xsd

Reply
  • Small update on my idea. The attached XSD creates a table that requires unique values in the field "lock". The problem was to find a way to insert data that is OK with failing writes to DB. So I created a process model with a "Query Database" node and set "Pause Node on Error" to false. The node output "Error Occured" tells me whether writing the lock was successful.

    So to lock a record I add the sub process "Write Lock" as a first node, then some other logic and the form. In the form I can tell my user about a possible lock. A last sub process makes sure that a written lock is removed.

    I think this is close enough to a real system supported mutex as checking and setting the lock is a single operation. And it will work for older Appian versions.

    TS_Lock (1).xsd

Children
No Data