"Pause" until Human Activity has been assigned
Application Type
Traditional Web
Service Studio Version
11.11.0 (Build 42152)
Platform Version
11.12.0 (Build 29969)

Hello all,
I could do with some guidance on the best way to develop an approval process. Suppose my workflow looks something like:
1 - A user clicks "Request Approval".

2 - The main process is launched which populates the data on which users are required to do the various types of approval and by when (different documents require different levels and types of approval).

3 - The first Human Activity is started by the main process and waits for the approval to be completed.

4 - Screen refreshes to show the user appropriate buttons to guide them through the approval process.


5 - If you are an approver, you will have the button visible to approve the document.  Clicking "approve" updates the status of that part of the approval chain, closing the HA and the workflow moves on to the next person.

Hope you're with me so far!

The issue I have is as step2 is asynchronously started we have occasions where it is the same user who is requesting the approval that is actually approving it (i don't like it, but that's a requirement!) As there can be a delay in the HA being sent to the user, they can click "approve" before the HA is assigned to them (basically they are "double-tapping"). This results in processes getting "stuck" as the HA is waiting for a change in data that has already occurred.

So how can I arrange my workflow and screen refresh to only show certain buttons once the HA is waiting? Indeed I would maybe want the screen to refresh itself at this point.

I really hope that makes sense

TIA

Martin

Hello Martin Rees 

I made an example and I hope it helps you



I hope it helps you.

Best Regards,

Hi Douglas,

This is interesting - is the "if" just creating a for loop? The assign keeps incrementing a variable until the target is reached?

Could one do something similar by comparing the time a particular point in an action was reached + a number of seconds, to the current time? It wouldn't be accurate in terms of milliseconds I suppose but I don't need that.

Ideally I would want to know the HA has been started this. But this might get me beyond an immediate issue whilst I create something more robust.

Thanks

Hi Martin Rees,

Yes If as a Loop, it can be done in another way:

By clicking the button:

Button.enable = False

Perform the action and at the end of it all

Button.enable = True

example:

I hope it helps you.

Best Regards,

Hi Martin Rees

One more example

Find the .OML attached. 

I hope it helps you.

Best Regards,

OnRenderTest.oml

Hello Martin Rees,

So, Did my answers help your needs?

best regards

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.