Skip to main content

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?

Control.png

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.

 

DesignTineRS.png

RunTineRS.png

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:

  1. Interacting with the repeating section data from a Workflow.
  2. Saving the Repeating section data in another list and hence creating a Master-Detail or a Parent-Child relationship between two lists.
  3. 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 :

1.png

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.

2.png

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.

3.png

Once the column is added to the view, here is what you are going to get :

5.png

Pretty cool, eh? happy.png

 

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).

Excellent resource.


Awesome ! Thank you for sharing (I will wait the 2010 version)


Thank you.  Just what I was looking for. :-)


Thanks! Coming in 1 week max.


Thanks .. Glad you liked it


Great! No more loops and other different actions!


Thanks Glenda, have you tested it already?


Great Job Ayman!

Have you tried the JSLink instead of a custom column? this can enable the end user customize how the data looks like in the list. also this way it can work in O365.


Hi Osama,

Well, I wanted to create something that works for both SP2010 and SP2013, so Custom Field Type was my only choice.

If you want to further customize how the repeating section is renderes, the WSP creates a folder under Layouts called "NintexRepeatingSectionView", this folder contains two files:

- GetRepeatingSections.js --> This is the file which is referred to from the XSLT of the custom field type.  It does all the heavy lifting like querying the FormData hidden field, reading its XML to retrieve the specific repeating section the end user chose while creating the column, parsing the repeating section XML and extracting its records. It is also responsible for rendering the values in a table.

NintexRepeatingSection.css --> This is the css file used within GetRepeationSections.js to style the table.

As you can see, you have full control over both if you want to customize how the repeating section records are rendered. Not as powerful as JSLink, but works on any view and most importantly works for both SP2010 and SP2013. Next weekend, I will just change the mapping from m15] to o14] and hence have a working version of the WSP for SharePoint 2010.

I will definitely consider JSLink for Office 365, it's obviously the only option for me

Thanks,

Ayman El-Hattab


Great, thanks for the information!


The SharePoint 2010 version has been released ..

The "Nintex Repeating Section Data" Field Type for SharePoint 2010


Getting an error when trying to deploy as a solution.  SP 2013

This solution contains invalid markup or elements that cannot be deployed as part of a sandboxed solution. Solution manifest for solution 'guid' failed validation, file manifest.xml, line 6, character 4: The element 'Solution' in namespace 'http://schemas.microsoft.com/sharepoint/' has invalid child element 'TemplateFiles' in namespace 'http://schemas.microsoft.com/sharepoint/'. List of possible elements expected: 'ActivationDependencies, FeatureManifests' in namespace 'http://schemas.microsoft.com/sharepoint/'.


Hi Cory,

This is a farm solution, not a Sandbox one.

Ayman


Since this is a farm solution.  What is the name of the feature to activate.  On my dev box i installed as farm solution but do not see it in my site collections features


Hi Cory,

You don't need to activate any features. The custom field type is available for you to use once you deploy the WSP to your farm.

Ayman


This worked great!  Is there a similar solution if you need to print or provide reporting of some type?


Can you please explain the use case in more details? If it's something of value, I can definitely implementat it.


Hmmmm.  I am new to Nintex so I will see if my vision makes sense.  I will be designing a form in the near future that will have a repeating section on it.  The client will want a printable (or exportable) version to send hard copy or email.  I tried to export a test and the column with the repeating section comes over blank.  Just wondering if including the repeating section is possible.

Thanks


Hi Stuart,

Printing forms is coming soon as far as I know.

Ayman


Any chance I could get the source code Visual Solution solution for this, also can it be modified to only be site collection scoped?


Hi Nicole Simpson, You need to deploy the WSP like any other WSP. Check this quick tutorial for more info.


Hi Scott,

We're working now on Version 2 of the solution. Once published, feel free to reach out for the source code.

And no, it cannot be site collection scoped because it's not a feature.. That's a SharePoint limitation.

Ayman


Here is the JSLink for the Repeating Section Nintex Repeating Section – JSLink


Great!!!  Quick side question.  Is the metadata stored in repeating sections searchable?


How do you control the order that the repeating section controls (columns) show up in the list view? I have a repeating section with a person control named AccountName and a calculated value control named DisplayName, no matter what order I add the controls to the repeating section the person control data (AccountName) is always on the left and the calculated value data (DisplayName) always appears on the right in the list view ->  AccountName  DisplayName. I would like the list view to show DisplayName on the left and AccountName on the right, this is the same order they show up on the form inside the repeating section with the DisplayName on the left and the AccountName on the right. In your example you have four controls and the order they appear in the repeating section is the same order they appear on the list view: Product, Quantity, ListPrice, SubTotal.


Reply