Is anyone aware of a change to Survey 123 Connect and Survey123 for iOS that would result in loss of backward compatibility – today's apps not working with last year's survey?
I have a survey designed last year, that worked in last year's versions, which is not working completely as-designed in current versions desktop or iOS.
The survey was designed in October last year in Survey123 Connect v3.11.123
In the screenshot below, the Quantity fields use a pulldata() function to determine their relevance, based on the type of defect selected.
When the survey is viewed today in the old Survey123 Connect v3.11.123 the form behaves as designed. The Quantity fields appear when they are supposed to:
When the survey is viewed today from an iPad running the old Survey123 v3.11.164 - the version that was current in October last year – also it looks fine.
However, if that same survey is opened in the current desktop and iOS applications it does not work as designed. In Survey123 Connect v3.12.232 the quantity fields do not trigger when they are supposed to:
Similarly, when viewed on an iPhone SE running Survey v3.12.277 fields do not appear.
Is this expected? A known bug?
Solved! Go to Solution.
I thought for sure it was the / in your lists but no. That was why I wanted to test it to relate to my own projects. Then I thought it was using the same name for a list as the field name - I have seen issues with this so may want to change.
I traced it down to the calculation for the defect field. I am not sure what you wrote here and am surprised it ever worked really. It is like no if statement I have seen. I changed it to how I would write it and now it all seems to work.
Was
if(selected(${flexible_defect},''),if(selected(${rigid_defect},''),if(selected(${other_defect},''),'none',${other_defect}),${rigid_defect}),${flexible_defect})
Change to
if(${flexible_defect} != '', ${flexible_defect}, if(${rigid_defect} != '', ${rigid_defect}, if(${other_defect} != '', ${other_defect}, 'none')))
Hope that helps
Can you post the form? Most of these I see are due to the lists now being stored in SQL. You could have a reserved word or some formatting that SQL is mad about. Just a guess without seeing the form.
The XLSX, and the look-up csv from the media folder are attached.
If the input is as below, it works in current versions:
Inspection Class 1 = Defect
Inspection Class 2 = Flexible Pavement Defect
Flexible Defect = Cracking
If the input is as below, it works old versions, but not current versions
Inspection Class 1 = Defect
Inspection Class 2 = Rigid Pavement Defect
Flexible Defect = Cracking
It always works in the old versions. It depends in the new version.
Thanks for taking the time to look at it.
I thought for sure it was the / in your lists but no. That was why I wanted to test it to relate to my own projects. Then I thought it was using the same name for a list as the field name - I have seen issues with this so may want to change.
I traced it down to the calculation for the defect field. I am not sure what you wrote here and am surprised it ever worked really. It is like no if statement I have seen. I changed it to how I would write it and now it all seems to work.
Was
if(selected(${flexible_defect},''),if(selected(${rigid_defect},''),if(selected(${other_defect},''),'none',${other_defect}),${rigid_defect}),${flexible_defect})
Change to
if(${flexible_defect} != '', ${flexible_defect}, if(${rigid_defect} != '', ${rigid_defect}, if(${other_defect} != '', ${other_defect}, 'none')))
Hope that helps
Thanks Doug!
The overly nested IF was not pretty but it worked, Excels' not my native language. Thanks for the cleaner alternative.