Wednesday, 21 June 2017

Nintex Workflows 101

A - OBJECTIVE: 

This article is to review basic points of Nintex Workflows (on-premises version 2013).

Case Study: we will create a workflow to delete all items in a list.

B - TIPS:

To list all potential or encountered technical errors or operational issues (based on frequently asked issues in my experience):

1. Delete a workflow: go to Workflow Inventory page as follows

 




2.  Schedule workflows to run automatically

 



 
3.  Process Collection (i.e. list of SharePoint): you should create a workflow variable of type "Collection" to handle this:

 

4.  Assign Flexi Task: is an important control in Nintex Workflows, where you can:
  • Allow a user (e.g. approver) to have different actions (i.e. outcomes), and each outcome can have its own set of activities (i.e. unique Nintex Workflow controls)
  • Assign who can be the target audience of this task & send custom email notification to the user(s).
  • Customize a Task Form (similar like Nintex Forms) which is used by this particular target audience.
Important Note:

Lookup Fields in Flexi Task: you can create linked controls in (a) a Nintex Forms, or (b) Task Form in a Flexi Assign Task (workflow)

For example, when a user chooses a value in Publication control, the check-boxes will be updated accordingly



Issue: when it comes to workflow migration (i.e. import an exported workflow) to a new SharePoint farm, such Lookup controls will not work anymore with the following warning:



Work-around: you need to delete the Lookup control and re-configure it again. This approach is acknowledge & confirmed by Nintex technical team.

5. State machine: is a crucial concept where you can define the states of your workflow while various parties can involve in a certain state(s).




C - CASE STUDY:

We will create a simple workflow to loop through all items in a SharePoint list & delete all items in a scheduled job.



D - SOURCE CODE:


1. We will create a query list where a variable of type Collection (named colItemIDs) will be used to keep all Item IDs:






2.Create a workflow variable index to store the number of items:



 3. Create a Collection Operation to count the number of SharePoint list items:




4. Create a Run-If control to ensure that all operations are done when the list has some items:



5. Create a For-Each loop to run through all get the individual ID out of the collection of IDs, and store this value in a workflow variable strItemID:






6. Add a Delete Item control to delete an individual item:



7. Schedule the workflow using Nintex Scheduled Job.