Copy repeating sections from List A to List B using Nintex workflow for O365 - Need urgent help..

  • 6 January 2022
  • 4 replies
  • 50 views

Hello Experts,

 

I need some advice/solution on the below issue.

 

I have List A with repeating sections, List A form was developed using Nintex new response designer. After the approval process is complete, I need to copy the details from List A to List B including repeating sections using Nintex workflow for o365. I have no issues mapping the details on List B for fields (text, list box. Etc) but having issues with repeating section field. 

 

I have maintained a same field names and types on both List A and List B. XML structure is copied to List B but when try to view the record on List B, the fields in the repeating section is blank. 

 

The logic used in the Nintex workflow - store a value from the repeating section column in List A in text variable and used that variable in Create list item action to write the value in List B repeating section column 

 

I am struck here, cant proceed further. This is a key requirement for business to view all the related details in repeating section on List B.

 

Can any expert help me on this situation ?

 

Thanks a lot in advance.


4 replies

Userlevel 4
Badge +10

Hi,


With new response forms, this is a 'normal' situation. This is a current limitation : https://community.nintex.com/t5/Responsive-Forms/New-Responsive-Office365-Current-limitations/m-p/89047 , it is equivalent to "Binding a repeating section to a column and displaying on a Task Form"


 


However, you can workaround this.


 


For the explanation


In the XML generated by the Repeating section, all XML node name corresponding to a control are generated with a GUID (Not the name of the control like for classic forms).


 


So when you want to display your List B form,  the Form can't make the mapping between control in repeating section and the XML content. That why you have an empty repeating section.


 


For the workaround, there are several ways to do it


 


Simple solution


Import the List A Forms in the List B, made some modification if needed, but don't touch controls of your repeating section.  With this, in your List B Form , your controls in repeating section will have the same GUID of repeating section controls of list A,  and so, when you want to display your List B  the form will be able to perform its mapping.


 


Solution Advenced :


In your worklfow, transform your XML value. Replace the old GUID (XML node name) from repeating section control from List A to new GUID (XML node name) from your controls of repeating section list B.


 


 


Hope this will help you


 


 


 


 


 

Thank you Nico. 


 


Unfortunately cant use the List A form on List B as there are many additional fields display in List B. Can you elaborate the solution advanced? DO you have steps how to do that in Workflow ? 


 


Thank you very much in advance.

Userlevel 4
Badge +10

You can still use you List Form A on you list B.


 


Simply :


1- Import the list form A on your list B


2- Remove all controls of the forms (except the repeating section)


3- Add new controls and connect theme to your list field.


 


For the advence solution : 


The steps should be some thing like : 


step 1 : copy the XML of your repeating in a string variable


step 2 : Replace in this XML, the old node name by the new node node name


 


Repeate step 2 for each controls / nodes in your repeating section.


 


 


For exemple 


In Form A, you have a repeating section with 2 txt control names : input1 and input2


The repeating section of you form A generated the following XML : 


<?xml version="1.0" encoding="utf-8"?>
<RepeaterData>
<Version />
<Items>
<Item>
<input1 type="System.String">Value 1 from List A</input1>
<input2 type="System.String">Value 2 from list A</input2></Item>
</Items>
</RepeaterData>

 


The repeating section of form B generate the following XML :


<?xml version="1.0" encoding="utf-8"?>
<RepeaterData>
<Version />
<Items>
<Item>
<d0902055-c1f4-4f5d-8f57-abd671a4d3ee type="System.String">Value X from list B</d0902055-c1f4-4f5d-8f57-abd671a4d3ee>
<f8ac8d8d-4f1d-412c-b9e5-90fecb430d5f type="System.String">Value Y from list B</f8ac8d8d-4f1d-412c-b9e5-90fecb430d5f></Item>
</Items>
</RepeaterData>

 


So, in your step 2, you must use 2 "replace" action (or regular expression).


- Replace "input1" by "d0902055-c1f4-4f5d-8f57-abd671a4d3ee"


- Replace "input2" by "f8ac8d8d-4f1d-412c-b9e5-90fecb430d5f"


 


And so, the XML from you Form A changed to be understanding by the repeating section of your Form B should be : 


<?xml version="1.0" encoding="utf-8"?>
<RepeaterData>
<Version />
<Items>
<Item>
<d0902055-c1f4-4f5d-8f57-abd671a4d3ee type="System.String">Value 1 from List A</d0902055-c1f4-4f5d-8f57-abd671a4d3ee>
<f8ac8d8d-4f1d-412c-b9e5-90fecb430d5f type="System.String">Value 2 from List A</f8ac8d8d-4f1d-412c-b9e5-90fecb430d5f></Item>
</Items>
</RepeaterData>

 

Thank you very much!!

Reply