Select to view content in your preferred language

Survey123 Repeat Data Not Retrieved in Outbox

1065
9
09-06-2022 10:02 AM
SFM_WillBrewer
Regular Contributor

Our survey is not able to retrieve the data from repeats on previously submitted surveys using the outbox. All other fields and pictures retrieve data, but the repeats do not. The survey does have "allowUpdates=true query" in the "bind::esri:parameters" column.

This is a significant problem because if the previous records are not retrieved and the user resubmits the data through the Outbox then we can end up with duplicate records. @IsmaelChivite @JamesTedrick 

Tags (3)
0 Kudos
9 Replies
DougBrowning
MVP Esteemed Contributor

Not sure if just a typo but query goes first I think.

query allowUpdates=true

Hope that does it

0 Kudos
SFM_WillBrewer
Regular Contributor

That did not work unfortunately. It's strange, the photos and geopoint are retrieved, but but not the answers to the questions themselves.

0 Kudos
DougBrowning
MVP Esteemed Contributor

Do these questions have relevant on them?  I think it was that tied to defaults or maybe repeat count.  Like it is loading the relevant first which wipes the data then it kicks on but the data is gone. 

If I remember one workaround was to use the esri visible column instead.  You can get blank records this way though depending on how your form works.

If it is repeat count that caused me so many issues I finally removed it.

If it is non of that then really need to see the form.  Hope that helps.

  

0 Kudos
SFM_WillBrewer
Regular Contributor

Yes, there is a repeat count on the repeats that have the issue. I suspect it is tied to that.

0 Kudos
DougBrowning
MVP Esteemed Contributor

Yea that one gets me all the time and I stopped using it completely.  Instead I use position() and/or count() in a constraint.  That way if the user is over or under it stops them.  If I remember you need 2 diff constraints 1 inside the repeat and one out if you want to catch too many and too few.  Not as slick but it works.

0 Kudos
SFM_WillBrewer
Regular Contributor

Where would you put the count() calculation in the begin repeat row or somewhere else?

0 Kudos
DougBrowning
MVP Esteemed Contributor

In one project we have a summary page at the end that tells them total repeats collected.  That has a constraint on it so if they try to submit and the number of repeats does not equal 50.  (For us its called Points and I have a Note field that has a calc of count() on any field inside the repeat.  Then the constraint is just .=50.

This does let the user add more than 50 which then they have to go delete.  But in another project they wanted to stop them the second they got to 51.  So in that case I have a second note field inside the repeat with a calc of position(..) and that has a constraint on it of <=50.  (You cannot just say = 50 here another wise you cannot add any records since 1 != 50.  Up to you how fast you want to tell the user.

Hope that makes sense.  Just make a copy of you form and try it you will see its pretty easy then.

0 Kudos
SFM_WillBrewer
Regular Contributor

Thank you for all the help. Unfortunately, we are still stuck. I need the form load a specific number of repeats based on the input to another question. That seems to mean relying on the repear_count field which is ultimately causing the problem.

0 Kudos
DougBrowning
MVP Esteemed Contributor

Just tie the constraint to that field then. You are simulating the same behavior. Loading all the repeats at once is exactly what is causing your issues.  Having a constraint lets the repeat grow one at a time.  Also dynamically changing the repeat count for sure has issues.  I think one was posted yesterday even.  I spent many hours on this in many different forms and it never worked out. 

0 Kudos