I'm creating a survey with a number of pulldata calculations, and I'm finding that it doesn't work consistently across space or platforms.
My software versions:
- Survey123 Connect - Desktop, Version 3.19.116
- Survey123 - web version
- Survey 123 - mobile app, IOS, Version 3.19.121
- Survey 123 - desktop app, Windows, Version 3.19.121
I am using data from two publicly available layers, lower tier municipality and upper tier municipality in Ontario, Canada to create a new field named "placename". If there is a lower tier municipality present, the placename gets that name, otherwise, it takes on the name of the upper tier municipality.
location_specimen = geopoint
lower_single = text; appearance = hidden; calculation = pulldata("@layer", "getValueAt", "attributes.MUNICIPAL_NAME", "https://ws.lioservices.lrc.gov.on.ca/arcgis2/rest/services/LIO_OPEN_DATA/LIO_Open03/MapServer/14?ret...", ${location_specimen})
upper_district = text; appearance = hidden; calculation = pulldata("@layer", "getValueAt", "attributes.MUNICIPAL_NAME", "https://ws.lioservices.lrc.gov.on.ca/arcgis2/rest/services/LIO_OPEN_DATA/LIO_Open03/MapServer/13?ret...", ${location_specimen})
placename = text; readonly = yes; calculation = coalesce(${lower_single}, ${upper_district})
Things are working great in the web version of Survey123 - if users choose to fill out the survey online using Google Chrome, all works as expected. I originally had an issue where some municipalities were not being retrieved, but solved this with the addition of "?returnGeometry=false" in the pulldata line.
City of Guelph is populated in Web App:
Unfortunately, in the mobile version of Survey123 (IOS) and Windows Desktop Survey123, "City of Guelph" is not being populated (along with other areas):
I've attached a reproducible example here for troubleshooting. Hope someone can help me figure this out!