Worflow beginners dilemma


Badge +5

I am new to the workflow process and looking for some pointers or be pointed in the right direction, I have a workFlow but it seems messy. I am used to workflows in Visio where if No then revert back to previous state. I do not seem to be able to do that with what I have. I use the Flexi Task and I want if reject to go back and reassign or continue workflow when accepted. Any thoughts?


17 replies

Badge +16

Hi Pete and welcome!

sounds like you need a state machine to revisit the process more than once. State machine defines the entry points, and the different states, but allows for different paths to be taken based on decisions.

‌ is an example of a state machine used to allow rejection and re-submission.

Badge +5

I looked at the example you had. Is there another example on this?

I presume I will put the "State Machine" prior to Flexi Task. Am I correct in stating I would need other "state Machine" actions under the rejected of flexi task and under accepted?

Badge +16

So your flexi task would live under one of the states. And under reject and approve you would use a "change state" action to move to the required state (or jump out of the state machine).

let me have a quick search of the community to find some other examples - I am not on my machine at the moment so bear with me. 

Badge +16

 

Badge +16

 

Badge +16

 

Badge +5

Cassy,

Wanted to reply before I went home. I GREATLY appreciate this. The "State Machine by Example" defined it better for me. Still need to look at the "art of...", but still what I needed, a point in the right direction(s).

I will be testing my workflow out tomorrow (fingers crossed).

Userlevel 6
Badge +12

Hello ‌ - 

Apologies for the delay, its has been a hectic day! It looks like ‌ set you on the right path with the State Machine action, which is what you would want to use to achieve what you want to do.

State machines are great if you want to have the ability to jump back or ahead to a specific branch of logic (state) within a workflow based on some predefined logic. So in your scenario, anytime a task has been rejected, you want the task to be reassigned and the workflow to continue. This can easily be done with a state machine and when a task is rejected, simply use a change state action to move to the same state.

The tricky part is reassignment. If you want the task to be assigned to a different user and not simply reissued, you will need to add that logic into the rejected branch of the task before changing states. You can do this with a workflow variable, but again, will need to do some setup work.

Let me know if you need help or an example of this and I can put something together for a walkthrough.

Also, it looks like you are using Nintex Workflow 2010, is that correct? I want to make sure I do not build this in something different and confuse you in the end!

Hope this helps!

Badge +16

You are most welcome.  The blog post you like "State Machine by Example" was written by ‌ so you are in super safe hands there.  Please keep us posted how you are getting on and if you need any help with this (or anything else further down the line).

As you say you are new, feel free to check this document out‌

Badge +5

Jesse,

That would be correct on the 2010 version.

I see what you mean on the reassignment, I think that is why the workflow stopped

I uploaded my new workflow, feels better but after I rejected the test it did go back to pending and stopped

Am I also going to need an action to use" if task is not equalled to COMPLETED then send reminder"?

or will the reminder portion in the flexi task send those reminders until completed is selected.

Userlevel 6
Badge +12

Pete Lamoureaux‌ - 

Here is a quick example of what you can do for the reassignment:

199838_pastedImage_1.png

The above example starts in Pending. If you use a workflow variable, you can change it in the "Reject" branch (you could even create another task to you or a manager to set it, but I'll let you decide what would work best for you happy.png) and then when the state machine changes state (restarts Pending), it will have a new Assigned To

You can use the reminder settings within the flexi task if needed or create another workflow to monitor pending and past due tasks. This might be a bit more complex, but it allows for much more customization as you can set the interval of when to look for tasks, pick multiple lists, and customize the notifications if they are due soon or due today or past due! You can do this with a site level workflow, but for now, use the Flexi task reminders until you get comfortable with them.

Also, I would look into delegating the task after X amount of time. That may be better than just reassigning until someone approves, but, again, that may be how your process is setup.

Hope this helps!

Badge +5

Jesse,

I am trying to understand why I would use the set variable in both the rejected and prior to state machine. Isn't the reassign and set to similar?

I have spent the time from your last post to try and understand and work with no avail. I tried searching the net for further help with no avail. I like trying to figure things out but I am in a rut.

When I tried this it created a new task and I want to keep using the same task until status is "completed".

I tried using the updated item action to update the task status but the workflow keeps erroring out on that and not proceed. I was going to update task status of complete and change to Not Started, hoping that would allow me to reuse the task. as well as using the update item to set assigned to, with this I figure the task reminder will email the assigned to check status of workflow. Sorry if I am not understanding your methodology, I truly want to understand.

Userlevel 6
Badge +12

Not to worry Pete we will get you there! 

I use the set variable action prior prior to entering the state machine so I can easily change it. You do not need that one because if you want to set it in the task action. 

You are correct, this setup will generate a new task every time it is rejected. I would recommend to use delegation if you want to keep the original the task.

Once I get settled in for the night I'll put together something for you as an example and post it here for you.

Userlevel 6
Badge +12

Pete Lamoureaux‌ - 

Morning - after some thought and trials, I keep coming back to the idea of delegation.

My previous examples were centered around creating a new task each time, but you mentioned that you want to keep the same task for the life of the item. I would stay away from trying to reuse tasks after they have been completed since tasks are merely meant to broker the conversation (work) between the user and workflow. Let the workflow handle that, and you can do it one of two ways. One, I already suggested with creating a new task each time, or you can have your users delegate the task. 

Delegating the task will allow you to keep the same task but reassign it to another user. You can also have the users provide comments each time to build some history or context around what happened with the task.

Again, up to you how you want to proceed, but these are your best options that will not cause too much pain later on down the road.

Hope this helps!

Badge +5

Alrighty.... Sorry folks, I am off on Friday's and don't return until Sunday, so sorry for the delay.

Jesse,

I have used the delegate in the workflow to delegate after a15mins. I am seeing where and why there are new tasks created, so I have a better understanding to that. I need to find out what hyperlink reference the "click HERE" is using so when I send out reminders they can click that as well, currently my reminders go out blank and I have tried different item reference, but still unable to get the correct one. I have literally tried dozens to figure it out.

My workflow is much prettier and will post what it looks like when successful with all workflow actions.

Userlevel 6
Badge +12

Sounds like you are making some progress!

Are you referring to the link to the task form?

If so, are you trying to create the link within the Flext task action or in another action after the task has been created? I detailed below both approaches happy.png

Inside of the Flexi task action:

You can simply use the Approval URL (when you are working within the Flexi Task action):

199978_pastedImage_4.png

Outside of the Flexi task action:

You can recreate the approval URL within your workflow, you just need to manually build it. You need the web url, task list you are using, and the specific task ID you  want to target. This can be tricky if you are creating multiple tasks, but if you are only creating one at a time, you can simply store the task ID in a variable upon creation and use it later on when you need it.

199969_pastedImage_1.png

You need to create a workflow variable for this, and keep in mind that it needs to be setup as either an integer, list item ID, or a collection (you can store multiple IDs if needed).

When you go to build it in the workflow, it will look something like this:

{Common:WebUrl}/lists/<<YOUR TASK LIST HERE>>/editform.aspx?ID={WorkflowVariable:taskID}

The Web URL variable can be found in the common tab when inserting references, and the taskID variable will be under the workflow variables tab. The editform.aspx?ID= will get you to the edit form of the specific ID you add to it. If you are using the default task list, it will be:

199977_pastedImage_3.png

Keep in mind that you cannot use the task ID until after the task has been created. 

I think I need to make this post into a blog and detail why you would use each approach...

Hope this helps!

Badge +5

I indeed was referring to the link in the Task form. The Approval URL is definitely what I needed for the Reminder action.  When I wanted to send emails I wanted to include that link I tried a few variants of your second approach, but was slightly different from the web research I did and was on Nintex, some of them somewhat confusing as the instruction layout was hard to understand, I managed to figure it out after reading and re-reading and re-reading.... Unfortunately it would give me the task ID. Like you said, before the task so I ended up with the current task id and I needed the task id +1.

Now I have to figure out why my form will not validate a field. I assumed the Min and Max should be an integer. Am I wrong on this?

Reply