Introduction
Repeating sections are very powerful if you want to create 1 to many relationships within your Nintex Forms. However, they come with some caveats when you need to parse, use and display the data stored within them. This blog post introduces you to the Repeating Section Control, explains the parsing issue in depth and explains some existing solutions that was created earlier by the Nintex community. At the end of the post, I will introduce you to a Custom Field Type that I created to help non-technical users quickly display the Repeating Sections Data in List Views without creating Workflows or getting their hands dirty with XML, XSLT or Java script.
So, what is the repeating section control?
The repeating section control is basically a container, which means that any controls added in the repeating section in the design time will be replicated in the runtime when the end-user clicks to add a new row. The end-user can also click the “x” icon to remove rows. Using Repeating Sections in Nintex Forms, you can create dynamic forms allowing the end users filling out the form to enter multiple values for a single field on a form. This is useful when you are collecting data and you do not exactly know in the design time how many records need to be collected each time the form is filled out.
With the Repeating Section control, you can achieve a 1 to many relationship within your forms. Here are some examples:
- Multiple products within the same order.
- Multiple destinations, flights and hotels within the same travel request.
- Multiple days off (with different types) within the same leave request.
The Problem
Despite how useful and cool the control is, there is no way OOB to parse the repeating section data if you need to do something with it. Why would you do that? Here are some scenarios / use cases:
- Interacting with the repeating section data from a Workflow.
- Saving the Repeating section data in another list and hence creating a Master-Detail or a Parent-Child relationship between two lists.
- Displaying the repeating section data in SharePoint List Views.
Basically, when an end-user fills out a form and submits it to the underlying list, an XML representation of the entire form is saved in a hidden field called "FormData". If we have a repeating section within the form, its data is also XML serialized and stored within this hidden field. If you need this data for one or more of the three scenarios above, you need to retrieve the value of this hidden field then query the XML to parse the repeating section data. Osama Mourad has written a very useful post around that, you can check it from here.
The Solution
Luckily, Vadim Tabakman wrote a very good post documenting a workaround he came up with to simplify the steps above. Basically, he created a UDA (User Defined Action) to extract the XML of the repeating section from the FormData field then he used the “Loop” workflow action to loop through each record in the repeating section using an incremental index. Using Vadim’s workaround, you can read the records the end-user filled in the Repeating Section and interact with them within the workflow.
What if you want to save this data to another list and hence create a Master-Detail relationship between two lists? Eric Harris has used Vadim’s workaround, added his magic and showed us in an excellent blog post how to do that.
What Vadim and Eric have done is all based on Nintex Workflows. What if you don’t have the Nintex Workflow Product? What if you just need to display the repeating section data in List Views and you don’t want to create a Workflow just for that? Enter The “Nintex Repeating Section Data” Field Type.
“Nintex Repeating Section Data” Field Type
The “Nintex Repeating Section Data” is a custom field type that I created in my free time to easily display the records of a repeating section in SharePoint List Views without the need of creating complex workflows. After you create your Nintex Form using the standard best practices for repeating sections, you only need to create a Column of type “Nintex Repeating Section Data”, enter the name of the Repeating Section you want to display in the field creation page, add it to any view and BOOM … The repeating section data is displayed in a neat table! All the heavy lifting is taken care of for you. Below are a few screenshots to help you understand the idea:
Here is the “Orders” list :
And here is the Ninext Form, it contains a Repeating Section called “Products”, note that I'm not connecting the repeating section to a column.
Now, I’ll create a Column of the new type “Nintex Repeating Section Data”. In the additional column settings, I will put in the name of the Repeating Section in the form.
Once the column is added to the view, here is what you are going to get :
Pretty cool, eh?
You can download the WSP for SharePoint 2013 from the attachments below. The SharePoint 2010 one will be released soon.
Update (Aug 13th, 2015): SharePoint 2010 Version is now available, you can download it from here.
Notes:
- The “Nintex Repeating Section Data” Field Type for SharePoint 2013 was created in my free time and is NOT a Nintex product. If you have any feedback, please feel free to post it here or ping me on Twitter @AymanElHattab .
- You can create as many columns based on the new custom field type as needed. For instance, If you have 3 repeating sections (Flights, Hotels and Events) in your travel request form, you can create 3 columns to display the repeating sections' records in your View. Just make sure not to connect your Repeating Sections to list columns (as shown in the screenshots above)
- IE7+, Chrome (Latest) and Firefox (Latest) are supported.
- Nested Repeating Sections are not supported (yet).