Disclaimer upfront, this is not an official Nintex solution and we can't take any liability when using the provided solution parts. Also, we obviously don't provide any support for it and you use it at your own risk The solution was built using SharePoint 2013, Nintex Workflow 2013 and Nintex Forms 2013.
Setting the scene
Every company has people that regularly travel. Normally there is some kind of travel request approval process involved and a submission of expenses after the trip. The aim for the solution was to provide 2 independent solutions that still allow for interaction between them. Namely converting an existing travel request into a draft expense report to minimise work required by the person who is travelling.
There is 2 parts to the solution. First, we have the travel request, where an employee can go and fill in a form, it then goes through the appropriate approval channels. Secondly we have the travel and general expense approval where an employee can create an expense report straight from one or many travel requests or create an expense report from scratch.
As mentioned before, both solutions can be used independently. However linking them together makes the user experience much better and employees will be much happier not having to provide the same information twice.
Both solutions live on one site in this scenario.
First things first. The expense report solution requires two UDAs to be published at the site collection level. They are both in the attached zip file. Do this before you continue to the next step. I won;t get into any detail on what the UDAs are doing, but in brief, the first one extracts the line items of a repeating section, the second get's some user information.
The Travel Request consists of a custom SharePoint list, a Nintex Form and a Nintex Workflow:
- Create a custom SharePoint list called "Travel Requests" with the columns shown in the screenshot below
- Once you are done with the custom list, open Nintex Forms and import the attached form called "TravelRequestForm", then publish it.
- The last step is to open Nintex Workflow designer on the Travel Request list, import the attached workflow called "TravelRequestWorkflow", amend the actions according to your needs/environment and publish it.
Congratulations, you just finished solution 1 Now, as a next step, we'll create the Expense Report solution.
The Expense Report consists of a custom SharePoint list, a Nintex Form and a Nintex Workflow:
- Create a custom SharePoint list called "Expense Reports" with the columns shown in the screenshot below
- Once you are done with the custom list, open Nintex Forms and import the attached form called "ExpenseReportForm", then publish it.
- The last step is to open Nintex Workflow designer on the Expense Report list, import the attached workflow called "ExpenseReportWorkflow", amend the actions according to your needs/environment and publish it.
Solution #2 done! Now, creating an expense report out of a travel request is done using a site workflow and a link to the workflow on the travel request site.
Simply open Nintex Workflow designer and import the workflow template called "TravelToExpenseWorkflow", amend the actions according to your environment and publish it.
The last step is to provide the user with a button that opens the start form for the site workflow. On the start form a user can select his/her existing and not yet processed travel requests. The information from all selected travel request will be compiled and put into a new expense report.
For our demo solution, we simply create a new page on the team site where we placed the "Start Site Workflow" and linked it to the above site workflow. The web part can be found under the Nintex Forms category in the web part selection box.
Hope that this is of help to you and please feel free to contact me directly for improvements or other ideas of solutions you might want to see here on Connect. Also, I'd have provided a step-by-step video but I am a bit limited on time at the moment, which also explains the short nature of my post. I might extend the post at a later stage and make corrections where necessary.