Upgrading Nintex Workflows to World-Class


Nintex is by far the best workflow system in SharePoint 2013; but I’d like to suggest some things that would make it more world-class—best-in-breed for workflows. I have outlined the shortcomings of both SharePoint Designer and Visual Studio Workflows in an earlier article. My focus in this piece is how to improve on the good.

 Below are four areas that could make a difference in enterprise capability:

  1. A Better Functions Library
  2. More Robust and Intuitive String Tools
  3. A “For Loop” with A Counter to control loops
  4. An Action Control to Split Individual Persons from Group Fields

 

Better Functions Library

My programming career stretches back 40 years, starting in 1977. Some of my first job assignments were calculating date fields.  I can’t believe I’m still doing date functions. When I needed a Julian Date function in my Nintex Workflow, I had to “roll my own”: Anyone know an easy way to calculate Julian Days in a Workflow

The algorithm was not complex, but I had to spend productive time doing what should have been an easy function call. Also, I have seen posts on calculating weekdays, business days, the start of a quarter, and the number of days in a quarter. This functionality needs to be encapsulated in a core library. A better function library is not “Rocket Science.”

I know I work for NASA  for the International Space Station in Huntsville Alabama.

 

More Robust and Intuitive String Tools

A better widget is needed to build, evaluate and test function expressions. It took me almost two hours to figure the syntax for fn_FormatDate.  My task was just to replace the month and day of a variable with “01-01-“ to get the first day of the current year.

The expression builder was neither helpful nor intuitive. I kept losing parenthesis and commas in the small, un-sizeable editor window.
(I have certain size biases the older I get—Child of 70’s.)

The only way to evaluate my expression was by compiling and running the workflow from a list item; then, examining the debug output in the detail of Workflow History to find either the values or the nondescript error messages.

Totally NOT Cool! (Child of the 70’s)

 

A “For Loop” with A Counter to control loops

To loop or not to loop? Looping is not a real question. Of course, you’re going to loop; workflows are supposed to loop; but exactly how will this looping occur? In my article about Safe Looping, I explore the ramifications of looping and “safe looping.”

Every world-class software needs a “for loop” with a controlled counter for iterations.  Think of the JavaScript “for Loop” for example:

            for (i = 0; i < cars.length; i++){ more code } ;

 

The article referred to by my last link explains how to build a collection to trick the “for-each loop” into going a specific number of times. I sincerely believe the architects of this superb product can do this better than my trick and, can and add it as a language feature.

 

An Action Control to Split Individual Persons from Group Fields

First, let’s start with an example of functionality I’m outlining:

A SharePoint List in my project was using a Person Field. This field can contain multiple persons. My intent was to split this field into individuals. Then, build list items in an approval list and, subsequently email each the link to their list item.  Thus, I could store all my responses in a list with a view that grouped by a key field.

It took me several weeks, several support calls, and an escalation to finally resolve. The first support representative took my information and after researching the issues determined we needed to hire a third-party vendor to pay for a solution. The incident was then closed.

In the incident response survey, I noted that the issue had not been resolved and was a critical issue for our future Nintex Usability.  I must have hit a VP nerve.

Subsequently, the case was reopened, and another tech provided a workable solution. While this worked for me, the code was not simple due to the many Type-Conversions, Collections, and a “for each” loop that is needed to implement the functionality.

My final point is that this would make a versatile Action Control; possibly, a variant on the “for each” loop—one exclusively for Person Fields.

As good as Nintex Workflows are, they can be better with the specific items outlined in this article.  I’m excited about the future in Nintex Automation and hope my suggestions can help carve a direction.

 

Stephan

 

 

 

 

 


11 replies

I understand why you've put this here, to generate discussion, but have you put any of this on Uservoice?

Customer Feedback for Nintex 

I think there is definitely work to be done around the business days and hours functions and actions. I did a fudge using Excel Services, so there's always a way but if Nintex is an business tool, it needs to make business needs like this much more front and center in its development.

Your Loop request...doesn't this do the job for you?

There's always lots of things that can be improved in software like this, you compare it to a programming language and it's very much the same with it's development. Demand drives innovation and this community is a valuable resource to Nintex in establishing the next piece of innovation!

Just Posted on UserVoice. Thanks for the tip.

Please read my article about loops. No, your solution doesn't work for me.

I'm not clear, is your reason for not using the Loop action, because of potential user error? I would have thought it was very much the same as your javascript example.

Whilst I agree there's a degree of complexity about it, it is development after all and an understanding of development principles is required.

Stephan Onisick‌ - 

Great article! I love Nintex and everything that it has to offer but I would be remissed if I didn't say it has it's own "faults". Too often do I spend time trying to figure out how to :do it with Nintex". There are things that I know I can do using other products quickly and would require more time and effort if I were to use Nintex solely. Nintex should not be the only tool in your toolbox, but, with the things that you mentioned, it would make it that much better!

Worth posting links to your UserVoice suggestions on this thread to allow people to follow it up.

Thanks I posted this in UserVoice.

Great article! I definitely do not like SharePoint's workflow. It is not user-friendly at all. I like Nintex. One of my complaints would be more ways to debug/troubleshoot. Using the History Log action is ok...but there should be more ways to troubleshoot.

Definitely, more ways to debug. It seems once you start a workflow, all you can do is to look at debug output or ughhhhh look at the SharePoint Logs if you can get access.

Then most error output by Nintex is real generic.

If you get an error output... I have banged my head against the desk too often when things fail but I do not see anything out of place...just...Error Occurred

Reply