Skip to main content


 

Symptoms


Question: What is the best way to prevent users from editing a task after they have already actioned it?
 

Diagnoses


We have a form in our New Business Intake (NBI) solution that allows users to action the request at multiple tasks during the process. When the user opens the form at a particular task, we use the K2 API to determine whether or not the task is available/open to the current user. And whenever the form is submitted with a particular action, we also check to see whether the task is open to the current user before saving the request and performing the action.

But the form is very complex. It contains multiple tabs. And there are dependencies between the tabs that require us to perform an Update on every view on the current tab before we navigate the user to the new tab. Also, we have provided a Save button that performs an Update on every view on the form. Most of these update methods are exposed from the database itself, not from some WCF method that updates the method. This allows the user to save the task and then open it up at a later time to actually perform the action.

This save functionality has led to some data integrity issues, mostly due to the user somehow having the current task opened in 2 separate browser windows at the same time. Imagine this scenario:

User gets a notification via email when a task is assigned to him or his role. They sometimes get lots of these notifications and gets them confused. So they open up 2 form instances in 2 browsers. They edit one window and perform the action on the task. Then, on the second window, they simply click on another tab. Doing this causes an update on one of the views in the current tab, clearing the data they just entered in the other window.

Since users are primarily working from notifications (and not from the custom worklist that we have provided them, it's easy for them to get confused like this and end up clearing data that they just entered. It's easy to say that a situation like this is a training issue, but we are not satisfied with this answer and are looking for a way to prevent users from editing a request that has already been actioned. We were hoping that K2 could give us some insight into ways that we could prevent this from happening.
 

Resolution

A view was created in which a smartbox was the data source, and based on button selections by the user determined whether or not the form was checked in or checked out. Thus based on that set of criteria the view in question was then disabled if the form was checked out. This in turn would prevent the view from being edited when it was currently being worked on elsewhere, and would eliminate the data integrity issues surrounding the current process in place.




 
Be the first to reply!

Reply