Nintex Workflow with SharePoint 2013
Let's understand the workflow support offered in SharePoint 2013 before we dive into the role of Nintex in SharePoint 2013. SharePoint 2013 supports two hosting environments for Workflow: one the existing SharePoint 2010 workflow host and a new feature called Workflow Manager.
In the previous versions of SharePoint, SharePoint itself used to host the workflow execution. Workflow manager is a new feature in SP2013 and it requires additional installation and configuration. With this new change, the workflow execution is now hosted in Workflow manager. Workflow Manager is hosted outside SharePoint and communicates with SharePoint using the Azure Service bus and OAuth.
Figure 1: The SharePoint object model
Now let's look at where Nintex positions in context with SharePoint. Nintex 2013 on-premises workflow uses Windows Workflow Foundation in SharePoint; in other words, it uses the 2010 workflow engine. Nintex uses SharePoint's services to execute its workflow.
In this article, we will learn how Nintex plays a role with SharePoint in creating business solutions.
Nintex uses SharePoint's native workflow engine to build workflows within the SharePoint UI. It provides a workflow designer within the SharePoint interface. It uses purely SharePoint to develop workflows and also manage them. It provides various activities that can be used for creating workflows. It uses native concepts, such as REST and SOAP to connect with external data sources like Microsoft CRM, Project server, SAP, and so forth.
Let's begin with installing Nintex WF on on-premises. As said earlier, Nintex is based purely on SharePoint and it uses the pre-requisites stated by SharePoint 2013. It requires two SharePoint services to be running; they are 'SharePoint Foundation Web application' and 'SharePoint foundation Workflow Timer' services. Download and run the installer from 'https://community.nintex.com'. Once the installation is complete, you will see a list of Nintex wsp(s) added to the 'Farm Solution'. To enable the workflow, deploy the solutions (wsps) in the following order:
- Deploy other Nintex Workflow solutions as required, in any order.
- Finally, deploy the Nintex Forms.
After the solutions are deployed, the next step is to complete the workflow configuration.
One of the first steps is to set up database for Nintex Workflows. In the 'Central Administration', under 'Nintex Workflow Management', click 'Database Setup'. Click 'Create' to create a configuration database.
Activate Workflows for Web Applications
After applying these changes, the next step is to activate the web application that can use 'Nintex Workflows'. In the Central Administration, click 'Nintex Workflow Management', and then click 'Web application activation'. This page lists the web application where 'Nintex Workflows' can be activated; activate it for all the desired web applications.
Configure Workflow Actions
After the workflows are activated, now enable the actions that can be used by the users to create workflows. To do this, click 'Manage Allowed Actions' on 'Nintex workflow management' in the 'Central Administration' page.
Nintex allows sending emails and allows lazy approvals of workflow tasks. Lazy approvals are generally used by people who do not have access to SharePoint sites and they need to approve tasks. They generally complete the task by replying to the task email. Based on the reply—for example, as 'ok'—approves or rejects the tasks.
To enable this functionality, ensure the incoming emails are configured in the SharePoint 2013 system. Once the email settings are done at the SP2013 level, navigate to 'Nintex Workflow Management' → 'Global settings' → 'Email settings'. Fill in the outbound SMTP server name, from address and the reply to address.
Enable Lazy approvals from the Central Administration, 'Nintex Workflow management' → 'LazyApproval settings'. Add terms that will be used for lazy approval of tasks.
Once all the configurations are done, we are ready to create workflows. Log in with an admin account to the SharePoint site where the workflow needs to be created. We will create a one-step approval workflow. In the Nintex designer, drag-drop a flexi task from the toolbox on the left. Once the flexi task is added, it provides two branches based on the outcomes.
Figure 2: A flexi task has been added
Click the drop-down arrow of the 'Assign Flexi task' in Figure 2 and click 'configure'. It brings up the screen shown in Figure 3 where we assign users or SharePoint groups to the 'Assignees'.
Figure 3: Assigning users to the 'Assignees' group
If a group is added to 'Assignees', clicking 'Create individual tasks for all group members' creates individual tasks for all users in the group. 'Allow delegation' allows the user to assign task to other users. 'Allow LazyApproval' allows tasks to be approved using emails. Add a 'Description' to give a description to a task. The outcome values can be changed; however, it requires a minimum of two outcomes.
Figure 4: Changing the outcomes
As shown in Figure 4, we are given an appropriate task name and in the Form Type select Nintex Forms, this helps us customize the workflow task form using Nintex Forms. In the 'Item Permissions', set the users permissions to read once the task is complete. This helps in making the form read only once submitted.
Figure 5: Setting permissions
The Nintex features, like making the task form read only after the task is submitted and the ability to design every task form (based on the user performing the task), makes it very flexible and easier to implement. There are many activities provided by Nintex to integrate with different systems, such as CRM, project server, SAP, and so on. These options provided makes SharePoint workflow simpler to use even for a business user.
Nintex makes workflow creation simpler. It uses the client's browser to create workflows and provides a lot of activities that a user can use without writing any code. The workflow creation works fine with the IE browser and the officially supported browser is also IE. In addition, managing workflows is also easier because the performance of each step in the workflow can be tracked. It also supports integration with other systems like SAP and makes it extensible.