Skip navigation
All Places > Getting Started > Blog > 2017 > March
2017

In the Nintex Mobile App you can attach images or videos to your Nintex Form before you submit it. So how do you get this working?

 

  1. First off you'll need to create a Nintex Form that includes the Attachment control.
  2. Publish the Nintex Form to the Nintex Mobile layout.
  3. Access the form on the Nintex Mobile app, and select the + sign to add an image or video. If you attach an image, you also have the opportunity to edit the image as needed.

image_mobile.png

For more info on the Nintex Mobile App, check out Getting Started with Nintex Mobile Apps.

Welcome, Workflow Chefs, to the very first Chopped! Nintex Edition.
If you’ve not seen the hit TV show on the Food Network, this is where a basket of mystery ingredients are delivered to the chef and they must concoct the most delicious dish that they are able with those items.
 

In our April Mission, it’s a tad different! You are going to be given a basket with eight (8) Nintex Workflow actions (each with their own quantities) that you will get to be quite creative with: your goal is to devise a workflow using AS MANY OF THOSE ACTIONS in ONE workflow as possible to achieve some fictional outcome (which you must also describe!) Feel free to be creative and silly… but there are still rules, naturally! (Is it an expense report workflow? Great! Is it a workflow to help Snow White organize the 7 Dwarves she lives with? Also great!)

 
The Rules:
 
  1. You can ONLY use what’s available to you in your basket (which is listed as “Action (Quantity of that Action)”, with the exception of:
    • Set a Variable
    • Action Set
    • Build a String
    • Send Notification
  2. Use everything in your basket, or just some actions – but they must compose ONE working workflow. 
  3. Post a screenshot along with a tiny write-up about the scenario that your workflow answers.

 

 

The Basket:

 

Alright, get ready to uncover your basket… your actions are:
choppedbasket
 
  • Assign Flexi-Task (2)
  • End Workflow (2)
  • Run If (3)
  • Switch (1)
  • Wait for Item Update (2)
  • Update XML (2)
  • Query List (1)
  • Calculate Date (2)

 

The Prize:

candyjar

 

If you use ALL the actions above, you'll be entered into a drawing for a big ole' jar of candy! If nobody uses all the actions, we'll take everyone who uses the highest number and put them in the drawing.  HOW SWEET IS THAT?!

 

 

 

Good luck, chefs! Don’t forget to share your recipes J

Hi all,

 

Document generation is not for free, so putting some restrictions on this Nintex workflow action seems logical.

 

Without proper configuration, everyone who is allowed to create Nintex workflows can add the Nintex workflow action 'Document Generation' leading potentially to unwanted document generation consumption.

 

For on-premise, there is an option to allow who can use a specific Nintex workflow action. Below, the steps voor Nintex Workflow 2016 in Central Administration are given.

  1. Go to 'Nintex Administration'.
  2. Click on 'Action Settings' (Group 'Workflow environment').
  3. Select the action 'Document Generation' and click in the ribbon on 'Edit permissions'.
  4. De-select 'Make this action available to all users' and add the people who are allowed to use this action.
  5. Click on the button [OK]

 

Besides configuring who is allowed to use the workflow action 'Document Generation', making it a part of your Governance plan is a wise thing to do. Nintex Workflow Cloud and Office 365 do not have the option to set permissions on Nintex workflow actions, so for that it is actually your only option.

 

The consumption of document generation is also determined by how a workflow is designed. Make sure a document is only generated when really needed.

 

As last option, you can restrict who can start a workflow containing the document generation action.

 

I really love the document generation functionality of Nintex, but as in really life: too much love can kill you

 

Cheers,

Rick

 

document generation, central administration

Hi all,

 

Ever wondered how many document generations are already consumed and what your limit is?

 

There are 2 options:

  1. This information is written in the Workflow History when using the document generation action.
  2. Create a workflow, put the document generation action on the canvas, open it and voilà (see screenshot below).

 

 

Cheers,

Rick

 

document generation

With Nintex App Studio you can create your own branded Nintex app. What perhaps not everyone knows, is that you can filter the forms and tasks that are shown in it. This functionality is already present for some time but the way to do this has changed over time.

 

This blog post has the goal to show you how to filter forms and tasks in your custom branded Nintex App at this moment.

 

I created the following objects for the purpose of this blog post:

  1. A workflow in Nintex Workflow Cloud. This workflow contained an 'Express approval' action.
  2. Two lists in Office 365. The lists have their own Nintex form and both have a Nintex workflow connected to it containing a flexi task.
  3. Four lists in SharePoint 2016. The lists have their own Nintex form and 2 lists have a Nintex workflow connected to it containing a flexi task.
  4. Two lists in SharePoint 2013. The lists have their own Nintex form and both have a Nintex workflow connected to it containing a flexi task.

I also added an item to all lists and started the related workflow where possible. I did a manual start of the NWC workflow.

 

To be able to filter the forms and tasks, you first have to export:

  • the required forms for the forms you want to have in your custom branded Nintex App.
  • the required workflows for the tasks you want to have in your custom branded Nintex App.

 

Then login to the Nintex App Studio, create a new app or edit an existing one.

 

The magic happens in the content tab:

 

 

When clicking on it, the following is shown:

 

As you can see, at 'Tasks' and 'Forms' there is the option: Add filter.

 

Boom. There it is  The place to upload the exported forms and workflows. As a reminder:

  • Tasks > Workflows
  • Forms > Forms

 

At tasks you must select 'I want to [Show only tasks from listed workflows]' and then upload the workflows. At Forms you must select 'I want to [Show only list forms]' and then upload the forms..

 

In the screenshot below, you can see that I uploaded 3 workflows and 4 forms.

 

 

Click on 'Save & Build' and your custom branded Nintex app is on its way

 

What I also want to share:

As I mentioned before, I added objects in 4 different environments (NWC, Office 365, SP2016 and SP2013). When I installed the app on my phone (Android), I first had to create a profile. Then, I had the option to add the connections (one per environment) which I configured in the Nintex App Studio. Unfortunately, my app kept crashing when adding the NWC connection so I had to skip that one. I also did not see the Office 365 form and task (hoping the later did work ) but the SharePoint 2013/2016 stuff worked perfectly. In the following days I will investigate my NWC and Office 365 issue and keep you informed.

 

Cheers,

Rick

 

nintex app studio

rickbakker

March 2017 release review

Posted by rickbakker Mar 18, 2017

This post is a review of the march 2017 release. What is included in this post is my personal observation/opinion.

 

*** Nintex Workflow Cloud ***

Changes

  1. Addition of ‘Conditional start’ feature.
  2. Addition of ‘Share a link’ feature.
  3. A new connector action.

 

Addition of ‘Conditional start’ feature

This is my favorite release feature. Keep on going with the good work!

 

If this feature is available depends on the connector. I have not found a list about it but it can be easily checked. The available conditional start options depend on the connector and event.

 

The Nintex connector does not have a conditional start but connectors like ‘Dropbox Business’, ‘Microsoft OneDrive for Business’ and ‘Twilio’ do.

 

Below is a screenshot of a conditional start (Microsoft OneDrive for Business):

 

 

 

Do check if your requested conditional start is indeed possible. So has the option ‘Size (bytes)’ (Microsoft OneDrive for Business) no ‘greater than’ or ‘smaller than’ option making this start event variable a bit useless for a conditional start.

 

The example that first came to my mind was adding a bunch of files in one folder and let conditional start determine on which files the workflow must be started (Using: Microsoft OneDrive for Business - New File).

 

Before conditional start I had to create a separate folder for files on which I needed to start the workflow or had to build that logic into the workflow which would increase the entries in the ‘Instances’ unnecessary, making it more difficult for me to find the right instance (action limits is no longer an issue but was it too in the beginning of NWC).

 

Conclusion

I really like this addition.

 

Addition of ‘Share a link’ feature

This feature is an action which makes it possible to send an e-mail with links to files on several data storage location, like Microsoft OneDrive for Business. Connectors which currently have this feature (action) are:

  • Box
  • Citrix ShareFile
  • Google Drive

 

Microsoft OneDrive for BusinessThere are 2 types of links: 

  1. Download
  2. View

 

Test

 

 

I tested the action for the ‘Microsoft OneDrive for Business’ connector. I used the ‘New File’ event and the value ‘NWC’ for ‘Path’. When uploading a file to this folder, the workflow started, using the above mentioned conditional start :)

 

Next, using the ‘Share file link’ action, 2 variables were filled. But that was not the only thing that happened. The file in OneDrive for Business that triggered the workflow was shared too such that the person who knows the share link can view the file.

 

I then used both variables (links) in the ‘Send an email’ action. Clicking on the links in the e-mail did exactly what it promised (viewing the document and downloading the document). Test successful.

 

Conclusion

I like this new action. It would be nice if this action was expanded so you could also configure what kind of link to make: A read link or an edit link.

 

New connector action

Nintex Workflow Cloud has again a new feature. We want more, we want more  

 

 

*** Nintex Forms ***

Changes

  1. New ‘Save and continue’ button (On-premise only)
  2. Managed Metadata control (Office 365)

 

New ‘Save and continue’ button (On-premise only)

This is a much requested feature: Saving without closing a form

 

The feature is available as an extra option called ‘Save and Continue’ in the button action dropdown:

 

 

 

When using such a button action, the button does exactly what it implies: Saving the form and leaving it open.

 

But thinking about it does not stop there! Using ‘Save and Continue’ can start a workflow because the corresponding item is added/updated. The form designer must inform the workflow designer about this situation. The easiest solution is of course to add a hidden field, give it a value when using the ‘Save’ button and use a conditional start on the workflow.

 

A blog post about this topic has already been added by Nintex: Lucky You, there's New Form Features!

 

Conclusion

This feature works as expected but ‘connected’ workflows must be evaluated if all still works as required.

 

Managed Metadata control (Office 365)

This feature was already present for on-premise. I am personally not such a great fan of using managed metadata fields in solution (mainly because of migration complexity) but for Office 365 this will mostly be less of an issue. For certain customer requests, managed metadata is the only possible option, so yeah, I think it is good this feature is added.

 

An blog post about this topic has already been added by Nintex: Introducing Managed Metadata Control for Nintex Forms for Office 365

 

Conclusion

The difference between on-premise and Cloud features became a bit less again.

 

 

*** Nintex Workflow ***

Changes

Nothing seems to have changed here, though there was initial an indication some changes were made. This can be seen when opening the version page of the release notes of Nintex Workflow 2016.

 

 

*** Release notes ***

Product

Link               

Nintex Workflow Cloud

Click here

Nintex Forms for Office 365

Click here

Nintex Forms 2016

Click here

Nintex Forms 2013

Click here

Nintex Forms 2010

Click here

Nintex Workflow for Office 365

Click here

Nintex Workflow 2016

Click here

Nintex Workflow 2013

Click here

Nintex Workflow 2010

Click here

jesse.mchargue

What is Nintex?

Posted by jesse.mchargue Champion Mar 17, 2017

I have been doing a lot of "selling" Nintex to different business areas within my company lately as we gear up for the ever-looming exodus to "The Cloud", and have faced the same question more times than I really thought I would have.

 

"What is Nintex?"

 

The question is simple enough, and I could go on for hours about it, but how do you sum it up in a sentence, or a word? When you think of Nintex, what jumps to mind? What is your "elevator speech" for Nintex?

 

I have heard everything from "they do workflow and forms, right?" to "they do some stuff in the SharePoint space", but that hardly does Nintex any justice.

 

For me, I always gravitate towards "improvement". 

 

From existing workflows and processes to forms, it is a tool for improvement. It allows us to improve how we do our day-to-day as well as changes the way we look at approaching existing and new ventures. I think about how I can incorporate a process into other areas of the business using Nintex and how it will improve the overall experience for my users. I have been using the examples of the mobile platform and all of the things that are open to us with Nintex. This has gain a lot of momentum for me and my company, as they are starting to see that it is an improvement to the way they do their work.

 

I am interested to see and hear about what others think and how you approach this simple question. How would you explain it to someone that has never heard of it?

 

Share your thoughts and experiences, and perhaps we can each look at Nintex in a different way that we never thought of!

 

Until next time!

rbachmann

Nintex Forms and Oceanik

Posted by rbachmann Champion Mar 15, 2017

Hi,

I got the requirement to design a multilingual form the other day.

Thanks toVadim Tabakman for describing a good way to realize such a form.

Since my customer is thinking about translating the whole SharePoint-Plattform, Oceanik came into discussion.
Unfortunately, I haven't found any discussion about Nintex Forms and Oceanik in combination yet so I decided to share my learnings here. To learn about the capabilities of Oceanik, please visit their website here: OCEANIK for SharePoint 2010, 2013 and 2016 - Oceanik 

 

 

 

First, I installed Oceanik on my test environment and activated it on a plain SiteCollection. For this test, I translate terms from Englisch to German.

To check whether the solution is working or not, I put "Go-Live" on my homepage. Now I can switch between the two languages and see the result.

 

So far so good.

As you can see in the left navigation, I also created a list called "Expenses" and translated that to "Spesen".

 

Now for my next test, I use the term "expenses" in a label control on my Nintex Form and publish it.

 

Sadly, Oceanik doesn't seem to be able to translate terms inside a Nintex Form, I thought...

 

 

Do you want to see something really odd?

When I use "expenses" as an option inside a choice-control, the translation works:

 

Conclusion:

Oceanik isn't fully supported by Nintex Forms. Under some circumstances, terms are getting translated. Enterprises who face the difficulty of translating their whole SharePoint still need a workaround for Nintex Forms.

Please feel free to comment your experience or guide me if I missed a setting.

Welcome to the first blog of my new series!

Nintex vTE Giving back to the Community:  Getting Started with Nintex Forms

 

As a Nintex vTE I’m approached daily by colleagues and customers making requests of me to come up with creative and efficient solutions for some super complex business problems.  This blog isn’t about any of that though.  Rather, its purpose is to help those of you who may be new and perhaps struggling to get started.  It’s my intention to save you time by avoiding some common pitfalls, while teaching you some of the basics.  Moreover, it’s about giving back to the Community.  Join me now as we explore Nintex Forms.

 

Assumptions:  Nintex forms is already installed; User possesses general SharePoint knowledge. 

Intended Audience:  Someone new to Nintex Forms.  Although the examples in this tutorial were done in on-prem, O365 will be very similar. 

Level:  Beginner

Version Information:  Sharepoint 2013 (On-prem), Nintex Forms Version: 2.9.4.0

 

You’ve just received word that Nintex Forms has been installed and couldn’t run back to your desk fast enough.  Having heard so many great things about it, you know that glory is yours for the taking! 

 

Eagerly, you begin clicking around SharePoint looking for that shiny
New Form Button.  After five minutes of hide and seek, you sit contemplating whether you should call your Sys. Admin and let him know how great the install went, or commence with banging of head-on-keyboard. 

 

Hold the phone and save some brain… I think I can help.

 

Creating your first form

Nintex Forms are usually created in one of three ways:

  1.      On a list/library
  2.      Directly on a Content type
  3.      At the start of a workflow

Let’s walk through the steps for creating a form on a list.  This method is practically identical between on-prem and O365 versions of the product.:

 

Steps for Creating a Form on a List:

 

1) Create the list

From Site Contents -> Click Add an app

 2) Create the columns that you plan to use 

List Settings -> scroll down and click Create Column


Create the following fields in the list:

      -FirstName and LastName columns as Single line of text.

      -DOB column as type Date (no time).

      -LoginAccount column of type Person or Group.

      -Industry column of type Choice (as a drop-down): 
       Use [Business, Information Technology and Healthcare] as its options.

 (Helpful Tips)

  • Creating columns before generating the form is optional, but it can save time.  Nintex auto-populates forms with controls connected to these columns.  This saves from having to drag-n-drop/connect them later. 

  • Not all columns will result in a control being created.  Exceptions exist, such as calculated fields.  Don’t sweat it though, Nintex has its own calculated control available.

 

(Pitfall Alerts)

  • Avoid special characters in list titles and columns.  Use CamelCase instead.  Renaming a column’s display value later is an option. 

  •  Avoid using names that are already used internally by the system.  Doing so could result in things not working as expected and cause hard to troubleshoot situations.

 

3) Locate the list and open it up. 

Click on the List tab, which in turn will reveal the Nintex Forms icon. 

 

4) Click the Nintex Forms icon to bring up the Nintex Form designer. After a few moments, the newly minted form will appear:

 

 

Notice that an Attachments control along with a Save and Cancel button have been automatically placed on the form.  The coolest part is that everything works right out the box.  We could stop right here, click Publish, and be done with it all.   But, I can tell you are hungry for more, so let’s continue.

 

Previewing Your Form

 

The Preview option allows for the testing of a form before it is published.  Saving a form while previewing will not create an item in the backing list.   Clicking the Preview icon will bring up a Preview Settings screen.  It allows for the testing of formatting and validation rules, as well as any other customizations such as executing some JavaScript.  Exit preview by clicking the Cancel button on your form. 

 

 

 

 

Leave the defaults for now, and click Generate Preview.  Several options are presented to allow for customizing how you wish to interact with the form.  This includes options for type of Device, Platform, and which Mode to render:

 

  • New and Edit modes allow users to interact with the form.  Display is intended as a read-only view of the form.   Built in rules will allow for neat things such as hiding controls based on the current mode. 

  • If you do not see this icon (or any other), maximize the form designer window. Icons change appearance based on how much real-estate they have.

  • If the preview window comes up blank or does not render at all, that indicates something is configured wrong.   Likely culprits are wrongly written rules, or custom JavaScript.   The same is true when viewing a live form.

 

Modifying the Form

 

Let’s add some spacing to our labels: FirstName, LastName, and LoginAccount so that they appearas First Name, Last Name, and Login Account.   To edit a specific control, double click it OR right-click and select Settings from the menu that appears; either method will open the Control Setting page.  

Make the desired changes, and click Save.  Repeat this for each of the label controls.

 

  • Each control type has a unique Control Settings page with properties specific to that type of control.

 

Manipulating Controls:  Moving, Resizing, Deleting…

 

This may sound like a lot to learn, but believe me when I say it is simple.

 

Controls can easily be moved around the design surface by click-n-drag, or by using the directional arrows on your keyboard.  Simply give a control focus, and then move it to the desired position. 

 

Selecting more than one control at the same time can be accomplished by clicking just outside the form, and holding the mouse down while selecting the desired controls.  Use CTRL+click to select multiple controls in cases where they are not adjacent.

 

Moving Controls

 

Let’s go ahead and select all the controls starting with Title and move them down until Save and Cancel are within 2 squares worth of pixels to the bottom of the form. 

 

Next let’s select Login Account (both label and input control) and move them to sit right above Title. 

 

Finally let’s scoot everything beneath DOB back up until it touches its bottom border.

 

Your form should now look like the following:

 

 

Resizing Controls

 

Resize controls by dragging their handles either horizontally, vertically, or diagonally.  We’ve decided First Name, Last Name, and Industry could use some adjusting:

 

 

Deleting Controls

 

Deleting a control is as easy as giving a control focus and pressing Delete on your keyboard.  You will be prompted with a confirmation box asking you if you are sure you want to delete the selected control(s), at which point you can press OK or Cancel.  We won’t delete any controls at this time. 

 

Save & Publish

 

So far so good.  Having previewed our form and liking what we saw, now is a good time to talk about the Save and Publish options.

 

 

Save will persist the current state of design. 

 

Publish will save as well as make the form available for use.

 

Adding Controls

We won’t be adding any new controls in this particular tutorial, but it would be remiss of me if I didn’t at least mention how it can be done.  To the left side of the form designer sits the Form Controls panel.  

 

 

  • Pay special attention to the Search box at the top as it is often overlooked, but extremely useful when searching for controls.  

Notice the control grouping at the bottom area labeled General, SharePoint, List Columns.  Selecting one of these groupings will display all the controls associated to that grouping.  For example, click on List Columns and notice how all the columns we created earlier are represented here as controls. 

 

If you had accidentally deleted one of your controls, you could recreate your control by simply drag-n-dropping a copy of it back onto the design canvas.  Depending on controls grouping, you may or may not have to reconfigure its settings. 

 

By default, controls drag-n-dropped from the List Columns grouping are automatically connected to their respective backing list columns.   With controls from other grouping you must manually set the Connect To field if you wish to persist its data back to the list.

 

 

If Drag-n-dropping controls isn’t your thing, then you can always right-click on the design canvas and utilize the insert control menu found there:

 

 

 

Publish the Form

 

5) Click Publish, and when prompted by the pop-up click Publish again. After a moment, you should see the following:

 

 

Congratulations, you’ve just created your first Nintex Form!  

 

Using the Form

In order to use the form, do the following:

  1.     Open the list (which can be found on the Site Contents page).
  2.     Click on “New Item” and wait for the form to appear.

 

Wrap up/Conclusion

 

Working with Nintex makes form development fun and exciting.  There is so much more to learn about developing with Nintex Forms that I barely scratched the surface, but I hope it was enough to get you started thinking about how and what you can do with the product.

 

Nintex forms greatly enhances the way in which data can be collected from intended audiences.  A better user experience, often leads to enhanced productivity. 

 

I hope to see you again soon,

 

Mike Matsako

 

Don’t forget to click  at the top of this page.

In this blog post I’d like to show, how to use the Nintex Forms “Web Request” control together with the Google Distance Matrix API to automatically calculate the distance between two cities and the estimated duration for that trip.

At the end the form will look like this (Edit mode):

image

Setup Google Distance Matrix API

Before the implementation of the SharePoint list and the Nintex form, some simple steps need to be performed, to be able to use the Google Distance Matrix API. The documentation of the Distance Matrix API can be found here: Developer's Guide  |  Google Maps Distance Matrix API  |  Google Developers 

The most important point is the generation of necessary API key, the process for this is described in the “Get a key” section of the documentation:

image

After reading the documentation I configured the following request:

https://maps.googleapis.com/maps/api/distancematrix/xml?origins=Hamburg+22763&destinations=Muenchen+80331&mode=driving&language=de-DE&key=************************  

In this request, there can be found the departure value (“Hamburg”) with the corresponding departure zip code value (“22763”) and the destination value (“Muenchen”) with the corresponding destination zip code value (“80331”). Furthermore, the mode is set to “driving” and the language is configured to be German (“de”). At the end of the request there’s the necessary API key.

Please be aware that you need your own API key! The URL provided in this blog post won’t work for you!

The result of this call looks like this:

<DistanceMatrixResponse>
    <status>OK</status>
    <origin_address>22763 Hamburg, Deutschland</origin_address>
    <destination_address>80331 München, Deutschland</destination_address>
    <row>
        <element>
            <status>OK</status>
            <duration>
            <value>26400</value>
            <text>7 Stunden, 20 Minuten</text>
            </duration>
            <distance>
            <value>797062</value>
            <text>797 km</text>
            </distance>
        </element>
    </row>
</DistanceMatrixResponse>

Creation and configuration of the needed list

For this scenario, I set up a simple custom list called “Driver’s logbook” and added the following columns:

image

Configuration and implementation of the Nintex form

Then I started to configure the Nintex form. As always, I first made some basic changes and adjustments like changing the background colour, the grid cell size and the logo. Furthermore, I removed some control that I didn’t need, like the “Distance” and the “Duration” control.

Afterwards my form looked like this:

image

Then I added two “Web Request” controls into the blank areas in my form:

image

Then I started with the configuration of the control that should show the distance, at the end the configuration looked like this. These are all the settings that I changed

Name = Distance
Text connected to = Distance
Display format = Text
Service URL = https://maps.googleapis.com/maps/api/distancematrix/xml?origins=Departure+Departurezipcode&destinations=Destination+Destinationzipcode&mode=driving&language=de-DE&key=************************
XPath for display = //row/element/distance/text
Execute in view mode = Yes

image

Afterwards I configured the control that should show the duration, at the end the configuration looked like this. These are all the settings that I changed:

Name = Duration
Text connected to = Duration
Display format = Text
Service URL = https://maps.googleapis.com/maps/api/distancematrix/xml?origins=Departure+Departurezipcode&destinations=Destination+Destinationzipcode&mode=driving&language=de-DE&key=************************
XPath for display = //row/element/duration/text
Execute in view mode = Yes

image

So, that’s the final configuration of my form:

image

When I now fill out the form and enter a destination the distance and the duration will automatically be calculated. To get a better result I decided to also add the destination zip code and made it mandatory, as in some cases cities also have the same name.

image

For this example, it doesn’t make a big difference (2 minutes and 8 km).

image

If you have any questions, found an error or have a better way to accomplish this, feel free to contact me!

Hi,

 

I am working on a project where we need to identify and inspect underground workplaces in a mine. To do this we need to work through at least five levels of lookups trying to find a specific record out of more than 200 000.

 

Here is an example of the lookup part of the form:

 

I created a list for the lookup data with only three single-line text columns: ViewName, ParentID and ChildID. I then created indices on the ViewName and ParentID columns. The last piece of the puzzle was the views. I created a view for every list control:

 

Every view displayed the three columns, but were filtered on the value of the ViewName column.

 

Back to the form.

 

I used a choice control displayed as a drop down control as I only had two values to choose from. Here is the control settings for the Level lookup:

 

The five lookups all point to the same list. The Source view is the first "filter" as it breaks the list into five parts. The Parent ID is filtered by a Calculated Value control called fltShaft:

 

The other Calculated Value controls refer to the preceding Calculated Value control and List Lookup control e.g. fltShaft+'|'+parseLookup(lstLevel). To make the form neater, you can change the font color and background fill colors of the Calculated Value controls to match the background fill color of the form. Don't change the Visible property as the control won't recalculate.

 

I hope this makes life easier.

Planning Ahead

When designing a workflow it is often assumed that the actions will be processed in the exact order they are shown in the designer. While true most of the time, if your workflow is utilizing any batched actions (see below), the actions do not always execute synchronously.

 

What is a batched action?

A batched action is any action that makes a change to a SharePoint environment. These actions are added to a batch and processed together.

 

How are batched actions handled?

SharePoint Workflow Infrastructure processes activities synchronously until it reaches a point where the workflow is blocked (Task, Pause, etc). Only at this point will SharePoint commit batched actions. Processing changes to SharePoint in batches has several advantages:

  • Processing changes in a single SQL transaction is less resource intensive than processing every change as it occurs in a workflow.

  • When SharePoint encounters an exception while executing a workflow action, it will roll all changes back to the last commit (Native SharePoint Workflow Actions only). This makes the infrastructure more durable.

Performance

While adding a commit action after every batched action will ensure things are processed in the intended order, it is not optimal. It is advised to commit the batch after a group of actions without dependencies on one another are processed.

 

Example: Several field update actions that do not rely on one another for the values that are being updated.

If a series of batched actions have dependencies on one another, a commit should be added. This will ensure that each batched action is processed before actions that depend on the values are processed.

 

Example: A field update is processed that affects a filter parameter used for a list query.

Design Considerations

  • Batched actions have the tendency to behave asynchronously in that SharePoint does not wait for them to process completely before moving on to the next action in the workflow (unless committed).

  • Commit batched actions if the values they affect are used later in the workflow. Not committing batched actions can lead to null reference exceptions in a workflow or other unexpected errors.

  • If a batched action does not have any dependencies, it can be allowed to process without a pause or commit.

Additional Reading

 

More Information

 

Defensive Workflow Design Part 1 - Workflow History Lists

Defensive Workflow Design Part 2 - SharePoint Topology

Defensive Workflow Design Part 3 - Separation of Concerns

Defensive Workflow Design Part 4 - Slow Down and Speed Up

As it has been asked and instead of sharing the slides of my session "Managing permissions when a workflow is executing" from Nintex InspireX 2017, I think that it's more useful to create a blog post

 

Minimum permissions to design a workflow (save and publish)

Site workflows (On Premises)Site workflows (Office 365)

Minimum permissions on the SharePoint site:

  • Design (Workflow Gallery not accessible ; shortcut to create a site workflow not displayed)
  • Full Control (Workflow Gallery accessible ; shortcut to create a site workflow displayed)

Minimum permissions on the SharePoint site:

  • Design
List workflows (On Premises)List workflows (Office 365)

Minimum permissions on the SharePoint site containing the list:

  • Design

Minimum permissions on the SharePoint list:

  • Edit

Minimum permissions on the SharePoint site containing the list:

  • Design

Minimum permissions on the SharePoint list:

  • Design (Nintex Workflow icon is not displayed)
  • Full control (Nintex Workflow icon is displayed)

 

 

Minimum permissions to start a workflow

Site workflows (On Premises)Site workflows (Office 365)

Minimum permissions on the SharePoint site:

  • View Only (shortcut to the site workflows page in the site contents not displayed ; workflows not listed is the site workflows page)
  • Contribute (everything’s displayed)

Minimum permissions on the SharePoint site:

  • Contribute
List workflows (On Premises)List workflows (Office 365)

Minimum permissions on the SharePoint site containing the list:

  • View Only

Minimum permissions on the SharePoint list:

  • Contribute

Minimum permissions on the SharePoint site containing the list:

  • Contribute

Minimum permissions on the SharePoint list:

  • Contribute

 

 

Minimum permissions to start a workflow when option "Require manage web rights" is checked (only for On Premises)

Site workflowsList workflows

Minimum permissions on the SharePoint site:

  • View Only (shortcut to the site workflows page in the site contents not displayed ; workflows not listed is the site workflows page)
  • Full Control (everything’s displayed)

Minimum permissions on the SharePoint site containing the list:

  • View Only

Minimum permissions on the SharePoint list:

  • Edit

 

 

 

You can find more information regarding minimum permissions in Office 365 in this blog post :

Minimum Permissions List for Nintex for O365

I recently had a customer who wanted status indicators in his list.  While this can be done using JavaScript, one of my co-workers had come across a simpler approach by using a calculated column that points to the images that already exist in SharePoint.  

 

That worked well and his list views now had a nice indicator related to the status of each item.  Here is a sample of the list view:

icons in list view

Instructions for this approach will be in at the bottom of this post.  It's really easy, I promise!

 

I thought it might be a nice touch to include those icons in the form as well.  Here is a sample:

status icons on form

I was surprised that the image controls lined up so well when switching between statuses.

 

Here are the steps that I used:

  1. Set up your list with choice column that will be used for the status.
    column settings
  2. From the list, click on the List tab.  Click on Nintex Forms, and then click on Customize the item form.
  3. For this example, a panel control is placed on top of the label control for the "Status Indicator".  This panel will contain the images.
    add the panel control
  4. Add an Image Control to the panel. 
    NOTE: I used an existing status icon that is available to everyone.  Enter the following into the "Image URL" field: /_layouts/images/kpinormallarge-0.gif
    add the image control into the panel
  5. Copy and paste the image control two times.  Change the "Image URL" to the following for a caution (yellow): /_layouts/images/kpinormallarge-1.gif and for a warning (red): /_layouts/images/kpinormallarge-2.gif
    NOTE: avoid overlapping the image controls.  There is a 1 pixel gap between the controls in this example.
    copy and paste the image controls
  6. Create formatting rules for each image.  From the Nintex Forms tab in the ribbon, click on the Rules button and then click Add.
    add rules
  7. Create a brief name for the rule, such as "hide warning".
  8. Rule Type should be "Formatting".
  9. The hide condition should include the name of the indicator choice control and the status value.  In this case, the "on track" green icon will be hidden when the dropdown does not equal "On Track".
  10. Create rules for the other statuses as well.
    create other rules
  11. Preview to test out the functionality, then save and publish!

 

 

Supplemental info: How to add status icons to a list view using a calculated column.

  1. In your list/library settings, click on create column.
  2. From the create column page, enter a name for the column and click the radio button for Calculated.choose calculated as the column type
  3. Enter a formula like this:
    ="<DIV><IMG src='/_layouts/images/"&IF(Status="On Track","kpipeppers-0",IF(OR(Status="At Risk"),"kpidefault-1","grefresh"))&".gif'/></DIV>"
    NOTE: "Status" is the name of a choice column in this list that the icon is related to (see the first image above).  The way this is configured, "On Track" and "At Risk" our captured in the formula as IF conditions. The else is "Warning"; in other words, if any other status is selected, it will return "Warning". You can customize the example formula to meet your specific needs by adding/removing choices.
  4. Choose Number for the data type returned, and click on the OK button.
    data type returned is number
  5. Modify your view to include the new "StatusIcon" column, and it should appear.

 

Some other files names of interest (replace kpipeppers-0 with the file name below, for example):

 

File nameLocation of imageImage
kpidefault-0.gif/_layouts/images/kpidefault-0.gif
kpidefault-1.gif/_layouts/images/kpidefault-1.gif
kpidefault-2.gif/_layouts/images/kpidefault-2.gif
grefresh.gif/_layouts/images/grefresh.gif
kpinormal-0.gif/_layouts/images/kpinormal-0.gif
kpinormal-1.gif/_layouts/images/kpinormal-1.gif
kpinormal-2.gif/_layouts/images/kpinormal-2.gif
kpipepperalarm-0.gif/_layouts/images/kpipepperalarm-0.gif
kpipepperalarm-1.gif/_layouts/images/kpipepperalarm-1.gif
kpipepperalarm-2.gif/_layouts/images/kpipepperalarm-2.gif
kpipeppers-0.gif/_layouts/images/kpipeppers-0.gif
kpipeppers-1.gif/_layouts/images/kpipeppers-1.gif
kpipeppers-2.gif/_layouts/images/kpipeppers-2.gif
kpitrend-0.gif/_layouts/images/kpitrend-0.gif
kpitrend-1.gif/_layouts/images/kpitrend-1.gif
kpitrend-4.gif/_layouts/images/kpitrend-4.gif
kpiryg-0.gif/_layouts/images/kpiryg-0.gif
kpiryg-1.gif/_layouts/images/kpiryg-1.gif
kpiryg-2.gif/_layouts/images/kpiryg-2.gif
Huge thanks to Dave for sharing this calculated columns approach and to Paul Frederickson for setting up the sample site in our Example Hub.  Here is a site with references to the locations of all of the images (there are a lot more than what I have in the table above): SharePoint 2013 OOTB Image Files - Obilogic Blog 

One of our site owners encountered an error when trying to create a Nintex form on a new list.  The error message was as follows:

index error

The key part of the error outlined in red was, "The server encountered an error processing the request.  The exception message is 'Index was outside the bounds of the array.'"

 

I could recreate the issue on that list with my admin account, but not on other lists on the same site.  I didn't find any community discussions about this, so I started looking at the list structure and settings.  I quickly noticed an unusual column.  One of the columns was named "#".  I changed the name to "Number" and retried launching the forms builder.  Lucky guess!  It worked!  To test it out, I tried some other special characters and ran into the same error.  Interestingly, if the column name had text and a special character, it seemed to work fine, but when it was just a special character, I received the error.  So, for example, using "#" or "$" as the column name resulted in an error.  Using "# of users" or "$ amount saved" did not result in an error. 

 

The lesson... avoid using just special characters as your column names.

 

For reference, we're using SharePoint 2013 on premises, and Nintex Forms version 2.7.0.0

 

Hope this helps!

Brian

So I have had this blog post on my "to do list" for some time now and the list is now beginning to get scroll bars so I have to tackle it!  I have seen a lot of questions posted on the community (and asked in my workplace) about workflows incurring an error without much detail as to why this has happened.  The thing that I would always offer to anyone with these problems is to use the inbuilt error handing within Nintex workflow actions wherever possible.  Why?  Well a number of reasons actually:

  • If a workflow errors it notifies the initiator (unless those settings are changed).  Normally the initiator is a user in the business unaware of the design of the workflow, and sometimes unaware of the workflow altogether.  The last thing these users want is a ghastly email that says a workflow, that they may not be aware, has errored with some hideous details that they don't understand:

  • The details given when a Nintex workflow errors are sometimes completely non-descript and offer no help or direction in where you, as the workflow developer, should look to find the issue and resolve it.  An example of this helpful error is here:

  • OK sometimes errors in the workflow are the end of the world(!!) and will mean that the workflow will need to be terminated and started again.  However, sometimes, an error in an action wouldn't mean the end of the world and you might be happy to just catch and log the error without having to visit the workflow on the item, terminate it and restart it.

 

Actions with Error Handling

My understanding of the Nintex workflow actions is that the following all have error handling in their configuration (please correct me if I have missed any):

  • Call web service
  • Execute SQL
  • Find users by status
  • Get user status
  • Query BCS
  • Query Excel Services
  • Query LDAP
  • Query XML
  • Update XML
  • Web request
  • Convert document
  • Copy to file share
  • Copy to SharePoint
  • Create item in another site
  • Create list
  • Delete multiple items
  • Submit record
  • Update multiple items
  • Convert value
  • Add user to AD group
  • Create AD group
  • Create AD user
  • Create site
  • Create site collection
  • Decommission AD user
  • Decommission site collection
  • Delete AD group
  • Delete site
  • Enable Lync / OCS
  • Provision user in Exchange
  • Remove user from AD group
  • Update AD user
  • Create appointment
  • Create task

 

Configuring error handling

All of the above actions have in-built error handling available in the configuration of the workflow actions.  Error handling looks like this in the workflow action:

By default it will be set to capture errors = No.  You have three choices here if you want to catch errors:

  1. catch if an error occurred:  "Store error occurrence in"  a simple Boolean value that will indicate if an error occurred in the execution of the action.
  2. catch the details of the error:  "Store error text in" a text value for the error returned in the execution of the action
  3. catch both (my general approach)

So to use these options you need to create some variables to store this information.  I normally create a Boolean (yes/no) variable and a single line of text variable and configure my error handling as follows:

 

Note be sure to change "Capture errors" to Yes.

 

Dealing with errors

Well this is a very personal thing and entirely depends upon the design of your solution as to whether the error is a deal breaker or just something to be made aware of.  Generally if it's not a big deal I have a piece of my workflow directly after the action as follows:

This way the workflow will continue but I will be notified of the error returned.

If it is a deal breaker error, I would normally add an "End workflow" in that "Run if" after the email.

 

Workflow error notifications

By default the initiator will be notified if the workflow errors and has a status of "Error Occurred".  If this is not acceptable to you (which it never is to me), you can change these setting by navigating to Site Settings > Nintex Workflow > Workflow error notifications

Here I would change "Send notifications to the workflow initiator" to "No" and specify alternative email addresses to be notified instead.

 

How do you deal with errors?

I am interested to hear from you guys...  how do you deal with errors?  Do you use this built in error handling functionality?  What do you do when an error occurs?

Nintex Workflow Visio Shape Collection - Initial Release

Check out the asset in Nintex Xchange™  - Nintex Workflow Visio Stencil Sheet  

 

Features

  • Easy to mock up workflow designs in Visio prior to development work.
  • OpenSource 
  • Actively Developed
  • 148 Shapes
  • Nintex Workflow 2016 Shapes
  • Easily installed (Installation instructions here)

Planned Features

  • Labels for each shape
  • Additional Icons for other products

 

 

Screen Shots

 

Visio Shapes

nw shapes list

 

UPDATES

Version 1.2 (current)

  • All actions have working connection end points
  • Actions/icons have been sorted alphabetically

 

Version 1.1

  • All actions have been named properly.
  • New .zip file with Visio Stencil sheet

 

 

Disclaimer

 

As stated in our Terms of Use, Nintex is not responsible for any third-party content made available for download on Nintex Connect, whether or not this content has been reviewed and/or moderated by Nintex and regardless of who originated that content (including, but not limited to, Nintex employees, partners, affiliates, or moderators).  Users shall assume all risks associated with applications and other content provided on Nintex Connect.  Nintex does not provide support for any content and plugins provided for download at communities.nintex.com.

Good day,

 

THE STORY

We have a consulting firm that is busy with a staffing optimisation project and the consultant phoned me to ask if I can add a Spreadsheet somewhere on the intranet so that the HR guys can book people for the training.  So I asked the consultant a few questions about the booking, i.e. Where will it be held? How many computers per training room? How many training rooms? How many sessions does one person attend? What is the main purpose?  After discussing this for a bit with him I told him that we can probably do something better with some SharePoint lists and a bit of workflow

 

THE DETAIL

The training will happen at one of our training centres at 2 of the training rooms. They are Training room 3 and 4 and there are 16 computers per training room.  There are also 2 sessions for each day with the possibility of adding a third session.   They want HR to be able to book the people for these sessions per computer but they should also not be able to delete each other's bookings.   They want to see this in a calendar view and he wanted the solution later the afternoon...(+- 3 hours later)

 

THE IMPLEMENTATION

At this point I had a quick discussion with  my colleague Leon Haasbroek and we discussed a few possible solutions.  Seeing that I didn't have a lot of time I decided on a quick and dirty solution because of the time limit.

 

SharePoint

I created a new calendar list and a custom list for all the dates.  I created the Possible booking days (custom list) with three columns with the data (data was built in Excel and uploaded via the Datasheet view)

  • Computer identifier
  • Status
  • Date

 

 

 

In the calendar list I added columns with Company relevant information, i.e. Employee name and Surname (Single line text because not all the guys have got email), Company/Personnel number, Position (Job title), Shaft (Business Unit that h/she works at) and then I pulled in the lookup fields for booking the date and computer.   I also configured the SharePoint Calendar list so that a user can only edit or delete the entries created by him or her. This will solve the issue of guys removing or bookings not made by them.  I changed the form with Nintex Forms

 

 

 

The Date selection filters the Possible Bookings Date list on the date field and the Training room field uses a view that already filters the list on status Open only.  So when I get to the Training Room selection I only see available computers for the date. The quick and dirty that I mentioned is that I combined a few fields into one field    In the form I also save the ID of the selected date in the ID connected to field.

 

 

You can see in this list I combined the Training Room - Computer nr - and Session all in one field. If I had more time I would split this and not have a list of 1280 instance but as mentioned it was quick to create the records in Excel.

 

The workflow on the Calendar list does 3 things:

  • First step is to go and book out the date in the possible dates list by changing the status to booked.
  • Secondly it creates the booking in the calendar list
  • Thirdly, if the Send email tick was ticked will get the employee's email and other details from SAP and send an email to the employee, manager and CC the HR person that made the booking.

 

In the Possible Dates booking step I just use and Update Action.

 

In the Create booking step I had to determine the session from the last digit because it was a combined field and then according to the session calculate the start and end times.  This was unfortunately hard coded in the workflow.  The ideal would be to have this in a list so that it is easy to add sessions.  I then updated the booking accordingly.

 

 

 

 

 

 

In the send email action I test if the send email tick was selected. then I get all the information from our SAP system that I need about the employee and about the manager and then I send the email.

 

 

 

 

So that was my solution.  I know...I took many shortcuts...please let me know how you would have done this differently.

 

Thanks for your time.

Good day,

 

We have not implemented this yet but I thought I would share it with you so long.

 

SharePoint with Nintex Workflow, Forms and Live allows you the opportunity to create an in-house e-recruitment solution without having to spend money on some of the other companies out there.

 

First Step:

Decide on the fields that you would like to capture information about. This list of fields would be the basis for your form.

I created all the fields as part of a Custom list on my SharePoint site.

 

Second Step: Build the Form

Then I started editing the Nintex Form for this list.  Move the fields according to your preference.

 

and add repeater sections for the information that might have multiple different entries.

 

I also forced certain settings on the attachment field.  There has to be a minimum of 1 attachment and I limited the attachment to certain file types.

 

Third Step: Publish

Then I enabled the Publish to Live which will create this page for me in the Nintex Cloud and return a URL to this form to me.  

The URL will look something like this - http://bit.ly/2jfs6dk3 and once clicked on will open the form for me in the internet

 

 

You can no go further and build all the necessary workflows on the SharePoint list to notify the relevant HR employees that look at your recruitment.

 

Another idea I have been thinking about is to take all the skills and qualifications listed by the applicants and through xml populate a separate database that can be searched for specific skills or qualifications and then linked back to a CV.

 

Let me know what you think about this or if you would have improved it in a different way.

 

Thanks for your time.

 

fccrous

External Course Confirmation

Posted by fccrous Champion Mar 2, 2017

Good day,

 

We had a request from our Human Resources Development (HRD) department to have the ability to request confirmation from external training providers for booked training sessions. The emails were going everywhere and it was almost impossible to keep track of the training sessions and their confirmations.

 

We suggested a two list solution to address the requirement:

  1. First list is where any of the training administrators can add a training intervention with the details of the external training provider.  The workflow starts as soon as the new item is saved.  It then generates a unique code (Item ID  + Company abbreviation) and sends and email to our HRD Training Manager.  After she approved the external course request and email is sent to the External training provider.  In this email there is the unique code generated as well as a link to a Nintex live form (discussed in next step).
  2. Second list is the list with a Nintex Live form linked to it.  The external training provider will then click on the link received in the email sent to them.  The form prompts the training provider to copy the unique code emailed to them and paste it in the single line text on the Nintex Live form and click save. 

    After clicking on save, Nintex Live will pass that confirmation back to the second list and the workflow on the second list will start that checks to see if the code returned is in the first list.  If found it will mark the confirmation as confirmed and email the Training administrator to confirm that the training intervention has been confirmed by external training provider.

 

This two list solution allows our HRD department to keep track of all external training intervention and to only follow up on the records for which no external confirmation has been received yet.

Filter Blog

By date: By tag: