You are viewing limited content. For full access, please sign in.

Question

Question

Forms Gateways and Outflows

asked on February 3, 2014

I’m building an approval form and I’m currently editing a conditional expression for an outflow path. I’d like it to proceed depending on whether or the form was approved or rejected, and underneath Process Variables, I see “Action.”

 

After some experimenting, I’ve learned that the Action Process Variable inherits the Submit, Approve, and Reject options of the user task that precedes it. However, what if I have one exclusive gateway, Point A, that feeds into two user tasks and arrives at another exclusive gateway, Point B. At point B, I am looking at the Action Process Variable, and I see that there is only one instance of it beneath the Process Variables despite there being two users tasks.

 

This leads to my final question: does the action process variable only reflect the submit/approve/reject that is immediately fed into it? I am curious to see if an action process variable could use data from a user task that is not immediately connected to it. 

0 0

Answer

APPROVED ANSWER
replied on February 3, 2014

Instead of trying to retrieve the action variable from a user task that was not directly preceding the gateway, I'd suggest moving the gateway.  I tried to recreate your business process below, where "First User Task" is the location from which you are attempting to read the action variable and Point B is where the decision is made to take which path based on the value:

Let's try something like this instead:

 

 

Once you have your gateway following the user task that you're using to direct the outflow, you should be all set.  

0 0
replied on June 17, 2014

Hi Rob,

 

I have the following scenario:

 

 

All 3 departments need to approve the form. If all of them approve it, then it flows through the "approved path". If any one of them rejects it, then it should go a different path. The exclusive gatway set for the approved path doesn't let us select the "Approved" action from each of the preceding tasks. 

 

Given the configuration we have, the method you have exposed wouldn't be efficient at all for us. Is there any other way to achieve what we need to do?

0 0
replied on June 17, 2014

From your screenshot, make the "Approved Path" a merge gateway. Then have that go to another exclusive gateway that determines the two outflow paths based on the criteria you mentioned.

 

The purpose of the merge gateway is that you cannot have multiple incoming and outgoing paths using the same gateway. So one "catches" all of the incoming paths, and the other determines the outgoing paths.

1 0
replied on June 17, 2014

Hi Blake,

 

Thank you for your suggestion. Unfortunately, it didn't work as we need it to work. I created this test process as per your suggestion:

 

 

 

For each approval, it went through the entire process. If it was approved, then it took the approved path; if it was rejected, then it took the rejected path:

 

 

We need to do it in a way that only if all 3 approvals are given, then it will go through the approved process; if any of the 3 approvals is denied, then it will go through the rejected process. 

 

An alternative could be to put each approval in sequence, and would work. However, in real life, these departments may take up to a month to provide their approval, and putting them in a sequence will make the entire process extremely slow. 

0 0
replied on June 17, 2014

You need to change your "Inclusive Gateway" to a Parallel Gateway for the merge. That way it will wait for all 3 approvers before moving onto your "Exclusive Gateway" where your decision is made.

 

In the "Exclusive Gateway" make sure your conditions are set with ORs.

2 0
replied on June 17, 2014

Hi Blake,

 

The "Parallel Gateway" was the right call. It now waits for all 3 results just as you said. 

 

On the "Exclusive Gateway" I'm still having issues though, as it won't let me select from which Task I need to select the approval. Please see this screenshot:

 

Would it work by just adding ' /dataset/_action="Reject" OR /dataset/_action="Reject" OR /dataset/_action="Reject" '? This is the most confusing part for me...

0 0
replied on June 17, 2014

It never does allow you to select the task itself. You just have to choose the value of the action that is taken. So in this case it would be reject.

1 0
replied on June 17, 2014

Hey Blake,

 

I added the reject condition as I stated above, and it worked perfectly! Thank you for your help.

0 0

Replies

replied on February 3, 2014

The gateway has access to the variables for the user task that immediate precedes it; if you want to reference actions taken in other user tasks, it might be easier to assign those user tasks a special form that includes an additional field that the task participant can fill in. You could reference this field in later gateways.

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.