I'm using the pulldata(@layer) function to pull 45 pieces of data into a survey123 form based on a field entry in the form. This has slowed down the survey load time considerably and slowed down the drop down list load time.
Is there a way to stop calculations until a certain condition is met. Or is there a more efficient way to pull data points form the feature layer?
Solved! Go to Solution.
We use @ChristopherCounsell 's first suggestion. If we have a layer that we want to pull multiple attributes from (often it's pulling parcel ownership and site address), we use a single request and store the results as a hidden text field in the form.
For the individual questions, we use pulldata("@json", ${hidden_json_field}, ...) to access attributes.
make the question relevant so it only calculates when the condition is met.
Use the once() function so that it only calculates once.
Use calculationMode=whenEmpty so it calculates only if empty.
I'd also suggest reducing the 45 pieces. You could:
We use @ChristopherCounsell 's first suggestion. If we have a layer that we want to pull multiple attributes from (often it's pulling parcel ownership and site address), we use a single request and store the results as a hidden text field in the form.
For the individual questions, we use pulldata("@json", ${hidden_json_field}, ...) to access attributes.