Pulldata @layer slow load

141
2
Jump to solution
2 weeks ago
MattVizard
New Contributor

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?

1 Solution

Accepted Solutions
jcarlson
MVP Esteemed Contributor

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.

- Josh Carlson
Kendall County GIS

View solution in original post

2 Replies
ChristopherCounsell
MVP Regular Contributor

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:

  • Make one request, once, then parse the data in the form
  • Use other ways of interacting with the data - e.g.
    • post - webhooks, python snippets
    • before - Inbox/edit workflows, custom URL schemes to pass data
  • User forms and arcade expressions within Field Maps
  • revisit the workflow method entirely
0 Kudos
jcarlson
MVP Esteemed Contributor

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.

- Josh Carlson
Kendall County GIS