Collect Error - Problem with display condition for node

What is the problem? Please be detailed.
Hello community,

Have I been having a blast with ODK build. After overcoming a multitude of error hurdles, and managing to fix them thanks to past community questions, I feel that I am close to the finish line.

I have been trying to run my form on Collect v1.16.1 after uploading my XML file onto Google Drive but I keep getting this error:

I have tried changing details in the properties section but I still get the same error message with a slight difference at the 8 character code at the end of the message.

Here's the XLS fileDietary-Survey-No-groups-export.xlsx (18.8 KB)

Can you also attach the ODK Build form?

Sure. You can find it in the link below

Dietary Form Build

Tried attaching directly here but got this messagebuild%20error

Looking at your xlsx form, your constraint on ${serum_creatinine} doesn't really make sense:

(. >= '0.0000') and (. < '')

ie 'less than nothing'...?!? [to be honest, I'm not even sure how XPath is going to evaluation this!]

Note, all your other constraints seem to have the same, so I imagine if you fix this one you may well hit the exact same error when the parser gets to your next one. Which is to say, you may want to revisit all your constraints.

@yanokwa is this a possible bug in Build? ie not specifying a maximum inserts (. < '')

@Benarudo try manually removing this additional term from your constraints, and see if that makes a difference. Its certainly superfluous.

Thanks for the feedback @Xiphware

Before filling in the minimum constraint range, as 0.0000, I had left that section blank and it still gave me the same error.

I inserted that constraint after reading the tip at the bottom of the properties tab.
range

Seems like a Build bug. For now, if it's possible, you can fill in some enormous number that will never be reached to get around the issue. I'm not sure when I'll next have time to address this.

1 Like

Thanks, @issa! I've filed it as a bug at https://github.com/opendatakit/build/issues/205 so we don't forget.

@Benarudo Does the workaround of putting in a very large number an acceptable solution for now?

1 Like

As noted, this appears to be a bug in build (so you are not doing anything wrong!). As @issa suggested you can either stick a really big number in the maximum field, or you will need to manually edit the resulting XLSForm (or XML form) form definition to remove the second bogus condition, after exporting it from Build. Unfortunuately, this will have to be done for pretty much all your constraints, sorry :frowning:

Sorry I have been away for a bit.

Thanks for the feedback @issa. I tried including a maximum limit as you suggested but the message is still the same.

@yanokwa Still getting the same messages. Will try a new form, see if I will hit the same snags and report on the progress.

Thanks for all the assistance so far!

Hello All,

Finally solved the problem and the form runs well on Collect.

I am very new to programming so if someone can explain this solution in a more refined way, I will appreciate it.

So I decided to build and test the form step by step in order to debug the error. Yes, very tedious way but it was worth it. I noticed that in the xls form, there were these parentheses under the 'relevant' column. I decided to delete them after noticing that they were the only thing different from the initial fields and voila! Everything ran smoothly. My question is what are these parentheses?

Snip%201 ,

@Benarudo I know this has been a long time coming, but did you ever figure out why Build was generating the (). Or rather, do you have an ODK Build form that you can share with the problem?

Probably there had been text in the relevant field, and then it was cleared out, but then just an empty string remained. A check can/should be added for this case on export.

2 Likes

Ah, this problem only occurs if you export to XLS first. If you just export to XML directly it does not happen.