Repeat within a repeat problem!

Hi,

What is the problem? Please be detailed.

Sorry to open this question again but I am having a problem when creating a repeat within a repeat. I used to have it working but now it is not working. I am able to convert it to XML and filling the survey but when trying to extract it using ODK Briefcase, the form is not appearing in the pull list. I have also tried to check form definition and I receive this error "Bad form definition file. Please select another file."
I attached an image of the data flow that I need and how I used to do it. Do you have any suggestions on how to fix it? Are there any updates to ODK that could prevent such repeats?

What ODK tool and version are you using? And on what device and operating system version?

ODK Collect v1.19 on Samsung Galaxy Tab 9
ODK Briefcase v1.4.5 Production and ODK-Briefcase-v1.13.1 on Microsoft Windows 10 x64

Hi @wrkadri!

Could you attach the form to your post so that we can try it out?

Sure, here you go and thanks.

Test2.xls (27 KB)
Test2.xml (2.3 KB)

1 Like

Hi!

After fiddling with the form and Briefcase, I've got this error:

2019-02-12 20:32:15,002 [AWT-EventQueue-0] ERROR o.o.b.ui.reused.source.Source - Error parsing form
org.opendatakit.briefcase.util.BadFormDefinition: org.opendatakit.aggregate.exception.ODKIncompleteSubmissionData: Javarosa failed to construct a FormDef. Is this an XForm definition?
	at org.opendatakit.briefcase.model.OdkCollectFormDefinition.<init>(OdkCollectFormDefinition.java:64)
	at org.opendatakit.briefcase.ui.reused.source.Source$FormInComputer.onSelect(Source.java:423)
	at org.opendatakit.briefcase.ui.reused.source.SelectSourceForm.lambda$new$0(SelectSourceForm.java:43)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6539)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6304)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.opendatakit.aggregate.exception.ODKIncompleteSubmissionData: Javarosa failed to construct a FormDef. Is this an XForm definition?
	at org.opendatakit.aggregate.parser.BaseFormParserForJavaRosa.<init>(BaseFormParserForJavaRosa.java:464)
	at org.opendatakit.briefcase.util.JavaRosaParserWrapper.<init>(JavaRosaParserWrapper.java:13)
	at org.opendatakit.briefcase.model.OdkCollectFormDefinition.<init>(OdkCollectFormDefinition.java:62)
	... 38 common frames omitted
Caused by: org.javarosa.xform.parse.XFormParseException: Binding path [null] not allowed with parent binding of [/Test2/families_assessment/members_assessment]
	at org.javarosa.core.model.FormDef.getAbsRef(FormDef.java:127)
	at org.javarosa.xform.parse.XFormParser.getAbsRef(XFormParser.java:1545)
	at org.javarosa.xform.parse.XFormParser.parseGroup(XFormParser.java:1473)
	at org.javarosa.xform.parse.XFormParser.access$300(XFormParser.java:119)
	at org.javarosa.xform.parse.XFormParser$1$8.handle(XFormParser.java:253)
	at org.javarosa.xform.parse.XFormParser.parseElement(XFormParser.java:539)
	at org.javarosa.xform.parse.XFormParser.parseGroup(XFormParser.java:1513)
	at org.javarosa.xform.parse.XFormParser.access$300(XFormParser.java:119)
	at org.javarosa.xform.parse.XFormParser$1$7.handle(XFormParser.java:247)
	at org.javarosa.xform.parse.XFormParser.parseElement(XFormParser.java:539)
	at org.javarosa.xform.parse.XFormParser.parseGroup(XFormParser.java:1513)
	at org.javarosa.xform.parse.XFormParser.access$300(XFormParser.java:119)
	at org.javarosa.xform.parse.XFormParser$1$8.handle(XFormParser.java:253)
	at org.javarosa.xform.parse.XFormParser.parseElement(XFormParser.java:539)
	at org.javarosa.xform.parse.XFormParser.parseGroup(XFormParser.java:1513)
	at org.javarosa.xform.parse.XFormParser.access$300(XFormParser.java:119)
	at org.javarosa.xform.parse.XFormParser$1$7.handle(XFormParser.java:247)
	at org.javarosa.xform.parse.XFormParser.parseElement(XFormParser.java:539)
	at org.javarosa.xform.parse.XFormParser.parseElement(XFormParser.java:548)
	at org.javarosa.xform.parse.XFormParser.parseElement(XFormParser.java:548)
	at org.javarosa.xform.parse.XFormParser.parseDoc(XFormParser.java:455)
	at org.javarosa.xform.parse.XFormParser.parse(XFormParser.java:366)
	at org.opendatakit.aggregate.parser.BaseFormParserForJavaRosa.<init>(BaseFormParserForJavaRosa.java:462)
	... 40 common frames omitted

Hi, @wrkadri!

It turns out Briefcase 1.13.1 uses a JavaRosa version that doesn't support your form, but we're planning a new release for next week that will be able to pull it. I'll try to keep you updated about this.

Thank you, I shall be waiting the new release.

Best,
Wassim

Hi @ggalmazor!

Thank you for taking this problem into your consideration. I have tested the updated version Briefcase 1.14.0 and now it is working fine. Much appreciated.