Using Collector to enable Survey123 Form duplicated point locations returned

2850
5
04-04-2017 08:37 AM
by Anonymous User
Not applicable

Hello,

I have used the Survey123 Connect program to create a form that has the following schema.

  1. A group that contains the main information for the Survey; like a header, for the Site Id, Date, State within, and User's Name and a few more fields.
  2. I have a group; we will call group 1, that will contain some more information related the main sampling site. This group contains a repeat that captures information pertaining to each of the sub sampling sites found at/nearby the main sampling site. (I set my repeats up as a groups in anticipation of Survey123 Version 2.0 release.)
  3. Directly after Group 1 is a Group 2 that contains a repeat to collect weather data for the main sampling site.
  4. One of my questions answers from Group 1 will or will not enable; answer dependent, Group 3 that contains a repeat 1  to capture information about items found at each sub survey location. I also have a repeat 2 that is nested within repeat 1 and activated by a question within repeat 1 to gather further data for uniquely ID features within the sample.

So, essentially I have a Feature class that will have three related tables and one of those related tables will also have a related table established to it. So, a feature class with a multiple tables that have one-to-many relationships and one of those tables with a one-to-one table relationship.

I then published the form to my ArcGIS Online account to be used within both collector and survey123 apps. I have created a web map that can be consumed within the Collector app. I would like to use the collector app and enable a High Accuracy Receiver protocol to locate the point locations within the Feature service that was created from publishing the Survey123 form. That way I can have the project base data and aerial imagery loaded for the field crews to use in an Offline mode to work in remote areas.

Within the web map I configured the pop up for the survey point location in to two different manners -

  1. With the Pop up Contents "Display" value set to "A list of field attributes" I only allowed 4 fields to be displayed and edited by the user; they are Site Id, Date, State within, and User's Name.
  2. With the Pop up Contents "Display" value set to "A custom attribute display" I set up the protocol to enable the Survey123 form to opened within the Survey123 app on the same device that the collector app is installed on. As part of this protocol I am passing the values from the 4 field edited within the collector app to be passed into the Survey123 Form within the Survey123 app.

My thought process was that I could utilize the collector app to obtain a very precise location of the sampling sites, but then utilize the Survey123 form to populate the information that is needed. It all seems to be working, but the only hick-up is there are two point locations being submitted.

  1. The first location is the location collected within the Collector app and it contains only the four fields that are visible in within the first dialog pop up within the collector app.
  2. The second location contains the data from the four fields that was passed from the collector app into the form and the remaining data the field crews enter, but this data is attached to new point and the locational accuracy is highly degraded.

After reading a number of blogs that stated the need to use the submission URL; I have tried to look up information pertaining to "submission URL" into the Survey123 form, but the link everyone refers to is broken - https://doc.arcgis.com/en/survey123/desktop/create-surveys/xlsformsubmissionurl.htm.

Is there something else that I should be doing in order to achieve my goal of using Collector to submit the location of the survey, while utilizing Survey123 form to populate the remaining data fields within the point feature class and it's related tables?

Any information or guidance would be greatly appreciated.

Thanks!

Mike

0 Kudos
5 Replies
JamesTedrick
Esri Esteemed Contributor

Hi Mike,

To speak directly to your initial question- we won't be quite set up to complete this specific workflow with Survey123 at 2.0.  While we will have the ability to update existing records, there won't be a mechanism to pass which feature to update via the url parameters.  You could still shift over to Survey123 and use the Inbox to search for the new point created by Collector.

Also, as a side note, Survey123 currently doesn't support nested repeats, so I would be a little concerned about that component- you can break up your long form into a set of smaller forms.

0 Kudos
by Anonymous User
Not applicable

James,

Thank you for the response, but I think I'm a little confused then as I had found an old posting from just over a year ago and I was told that they were supported?

Here is a link to the posting - https://community.esri.com/thread/172654

I noticed that there is now a GUID field option available within the "bind::esri:fieldType" column and would I be able to use this column to help set up a relationship between say two different repeats? Meaning, that instead of having a repeat nested inside of another,

  1. Separate the repeats out as stand alone repeats,
  2. Create a field named "SubSampleGUID" within what was Group 3 Repeat 1; guessing text field for the assignment within the Survey tab "type" field drop down and within the "bind::esri:fieldType" select "esrifieldTypeGUID", to hold a Unique ID for each Sub Sample entry.
  3. Create a field named "SubSampleRGUID" within what was Group 3 Repeat 2; guessing text field for the assignment within the Survey tab "type" field drop down and within the "bind::esri:fieldType" select "esrifieldTypeGUID", that I can then have contain the value of "SubSampleGUID" be calculated into,
  4. I can have an answer from a Yes/No question in Group 3 repeat 1 trigger the now separated Group Repeat 2 set of questions and pass the value from the "SubSampleGUID" into the "SubSampleRGUID". Similar to what a relationship does anyway.
  5. Then possibly build a relationship on the back end after downloading of the FGDB or will this establish a relationship when publishing from Survey123 Connect?

I will have to do some testing on my end to see if this is a possibility and how much of an effort it would be to handle this type of workflow for all of our data collection activities?

Please let me know if the above is a supported workflow.

Mike

0 Kudos
JamesTedrick
Esri Esteemed Contributor

Hi Mike,

I'm in agreement with Ismael (from the posting, emphasis mine):

technically, you can have nested repeats. Nested repeats in your Survey translate into nested related tables or layers in the Feature Service.  Repeats, and nested repeats in particular, are not completely implemented yet in Survey123 for ArcGIS, so you will need to explore what works for now. 

Supported means that we believe that we've implemented the feature correctly; at this point, we have implemented repeats but not nested repeats.

The procedure you outline is a way we can support nested repeats, by breaking them into multiple forms.  One caveat is a way to easily get the parentGlobalID field populated.  The method you describe might work after saving the first survey; we've also done implementations using wither select_one with the GUID as the value or pulldata()

by Anonymous User
Not applicable

James, I went back to the drawing board and started from a fresh "advanced template" instead of using the survey that I created 3 months ago. I created a very simple survey form that had a repeat1, repeat 2 with a repeat 3 inside of it, and then another repeat 4 at the end. When I look at the Schema within the Survey123 Connect, it appears to be correct with the table being related to another table.

I decided to post this survey form to our ArcGIS Online account and the schema was maintained with the repeat within a repeat and the schema of a feature class with a related table having a separate table related to the first related table. So, the schema was maintained once it was published up to the AGOL account.

I downloaded the survey form into Survey123 app on an iPad and started to fill out this form and noticed that the behavior wasn't quite what I expected. I was expecting that once you entered a value for repeat 2 that you then in turn could add additional data within repeat 3 that it would be only be related to the value I enter for repeat 2. That is what the schema is telling me within the relationship properties of the downloaded FGDB. However, upon further review of the data, it appears as though the ALL of the data being created from the repeat 3 is being applied to ALL data entries for repeat 2.

When reviewing the data within ArcGIS Desktop I noticed that all entries from Repeat 2 contained all entries that had been entered into repeat 3. Within my data entry of repeat 2 I entered two distinct text values of "Testing1" and "Testing2" and this was followed by entering additional distinct text within repeat 3 of "Testing1a", Testing1b", "Testing1c", "Testing2a', and "Testing2b".

Is there some sort of setting that I have missed in order to have the survey123 form build a set of values within my repeat 3 for only one data value that was entered within my repeat 2? Maybe this is still not a possibility within this version, but it seems so close to working. I have provided the FGDB and the excel file that was generated during the creation of the survey123 form.

I am sorry if I seem a little ambitious with my questions. However, if there was a way to get this to work, then this would greatly increase the use of this app within our field data collection. If this is still on the list of improvement for future releases, then I guess I will have to be patient.

Mike

0 Kudos
JamesTedrick
Esri Esteemed Contributor

Hi Mike,

Thanks for the description of your implementation and its results.  The description of the error is something that I would expect if we didn't implement the feature correctly.

For need repeat situations, we can get around that by authoring 2 forms.  From the description above, you have:

- Parent
  - Repeat1
  - Repeat2
    - Repeat3
  - Repeat4

You could have 1 form that has:

- Parent
  - Repeat1
  - Repeat 2 (optional - could be in other form)
  - Repeat 4

And a second:

- Repeat 2 (optional - could be in other form)
  - Repeat 3

The tricky part of this is to get the relationship linked across the forms.  If Repeat 2's questions are answered in Form 1, then you would need to get the value for Repeat 2's GUID into Repeat 3.  Alternatively, if Repeat 2 is part of Form 2, then Parent's globalID needs to be entered into Form 2's Repeat 2 section.  Either way, this could be done by URL, dropdown, or pulldata() lookup.  This also would work best using the 'Create from Feature Service' procedure to get the questions correct