Implement a On Hold/ Resume feature on my process model

Hi All, 

I'm currently working on an application that has a feature which allows the user to put an application 'On Hold' which will stop the process model from moving forward until the user "Resumes" the application. I am struggling with implementing the feature to my process model. I figure I would have to use a sub-task, but is there a way to trigger a sub-task based off of the status application. All I have seen is that you can have a scheduled start, but I did not see anywhere where you can trigger a sub-task based off of an expression. Please advise. 

Thanks,

Mike 

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    This largely depends on how you're planning to manage "tasks" throughout your process.  If you plan to have long-running process instances that have tasks sitting around on a user's Tempo task list, for instance, then I think you would need to implement a button on each task that could take the user to a standard "on hold" subprocess.  On the other hand, if you're planning to use database-backed tasks where process instances only start when a user clicks into the "task" from a report on a Site, which is becoming the current best practice, then placing a particular process "on hold" would perhaps be as simple as setting an "on hold" flag in the database to TRUE for that row.

  • I see, below I have included a screenshot of my process model. I have the user click a button that puts the application status to "On Hold." So my logic now is, if the application_status  = "On Hold" then kick off the sub-process before moving forward with application processing. Is there a way for me to kick off the sub-process only when certain variables expression like application_status = 'On Hold' are met? 

  • 0
    Certified Lead Developer
    in reply to MichaelXue

    The "on hold" decision would need to come from inside the task in your screenshot - in other words, among any other buttons/controls that already exist on the task, you would add a new one labelled however you like (i.e. "put on hold"), which when pressed, would trip an XOR gateway and flow the user into the subprocess (and you could use this same subprocess everywhere).  Inside that subprocess you would set whatever DB values you need, and provide instructions and/or an interface for the user to "remove the hold" when they're ready to.  At that point, the subprocess would exit and flow back into the original parent process and presumably directly back into the original task they originally entered from.  Note that this relies on the "put on hold" be accessed pretty much only from within the task.

  • Great! i was able to get it to run with an OR gateway. But now for some reason the sub process fails to move onto the next sub process. I'm not quite sure if it may be because of the way i setup the sub process? So right now i have the OR gateway to execute the sub process when status = "Put Application on Hold". The On Hold sub process has a user input with a form stating it wants to put the status to "on hold". And then the next step would be it would be put into resume application in the next sub process. For some reason the sub process is stuck on the User Input. Even though when the user accesses the form and runs the sub process appropriately. It seems that the parent process model doesn't recognize it to have ran. Any thoughts on this?

  • 0
    Certified Lead Developer
    in reply to MichaelXue

    You have the task in the subprocess configured as a Quick Task, which will remain active even after a user submits away from it - and then your end node is a regular end node and not a terminate node, meaning the subprocess will not actually end and cause the parent process to proceed since there are still active nodes within the process instance.  You will need to change at least one of these things before it will appear to work.  You'll probably also need to enable chaining in all flow lines following the On Hold task, if you want the user to be able to close out of the On Hold task and directly chain back into the original task in the parent process.

Reply
  • 0
    Certified Lead Developer
    in reply to MichaelXue

    You have the task in the subprocess configured as a Quick Task, which will remain active even after a user submits away from it - and then your end node is a regular end node and not a terminate node, meaning the subprocess will not actually end and cause the parent process to proceed since there are still active nodes within the process instance.  You will need to change at least one of these things before it will appear to work.  You'll probably also need to enable chaining in all flow lines following the On Hold task, if you want the user to be able to close out of the On Hold task and directly chain back into the original task in the parent process.

Children