Related Tables – Exploring New Ways to use Collector for ArcGIS

With the 10.3 release of Collector for ArcGIS, you can explore new frontiers with your smartphones and tablets and boldly take field data collection where no one in your organization has taken it before. Yeah that’s pretty geeky but that’s what makes us all GIS heroes, right?

So let’s geek out in this blog article and discuss how you can unlock amazing new opportunities to use Collector on smartphones and tablets by taking advantage of just one new enhancement – added support for related tables.

What’s the big deal about “Related Tables” anyway?

Establishing and maintaining positive relationships are important in life and geodatabase design. We won’t ponder life itself, but let’s spend some time discussing database relationships!

Example: within the lifecycle of a fire hydrant, routine maintenance activities are recorded over time. These maintenance logs or inspections are managed separate of the hydrant itself but are related to it. When viewing an aging infrastructure or planning for changes, you need access to the entire maintenance history. Each inspection is related to the hydrant. Until now these inspections were done using paper and pen – now you can use Collector on a smartphone or tablet device and synchronize directly to your enterprise geodatabase!

Within your geodatabase, you can create a relationship between hydrants and inspections using relationship classes. A relationship class will enforce the referential integrity between hydrants and inspections. All relationships have a cardinality that describe the nature of the relationship and in this example, the cardinality would be 1: many (one hydrant can have many inspection records).

You can use Collector to inspect hydrants and when you create a new inspection record it establishes a relationship between the inspection and the hydrant being inspected. We recommend that you create relationships using the GlobalID field on your layer so that primary key of the relationship (your parent hydrant feature) is guaranteed to be unique when establishing a connection to a new inspection record.

Collector supports relationship classes between features, between tables and between features and tables! Here is another real-world example of a feature to feature relationship with different cardinality – a leak detection report involves recording several readings along a pipeline. Each reading has its own location and several readings may be related to a single pipe. This is an example of a many: one relationship between reading features and pipeline features. We will talk about this one later!

Relationships can be nested together as well. For example, you may want to record one or more violations during your inspection of a hydrant. To do this you can create an additional 1: many relationship between inspections and violations. Collector supports these nested relationships but only 3 relationship classes deep (hydrant > inspections > violations). Of course you can have as many relationships as you want (hydrant > inspections, hydrant > manufacturer, hydrant > valve). Each table or child layer in the relationship can also have attachments if you like as well. Our example above has them.

Finally, Collector can enforce cardinality within relationships as well. It supports 1:1, 1: many and many: 1. It does not support many: many relationships though.

Creating and Publishing Maps with Relationships

Spoiler Alert: What we do next is only supported with ArcGIS Online at this time. If you are using Portal for ArcGIS, you will need to wait for the 10.3.1 release in order to create a map that Collector can use to edit related tables!

Using the example above of hydrants and inspections, let’s walk through the experience of publishing the feature service and configuring the web map to support our new frontier! You can download the Hydrant Inspection Map Package and follow along…

Download the HydrantInspection.mpk from the link above and open in inside of ArcMap. There you can discover the feature layers and relationships that will bring hydrant inspections to life on your smartphone!

Note that the wHydrant layer is a point feature class that contains a relationship to a wHydrantInspection table. You can discover the nature of the relationship by double-clicking on HydrantToInspection. You will see that the relationship is 1: many.

You may also note that the wHydrantInspection layer has attachments as well. Know that both feature layers and tables support attachments and from the nesting of relationships perspective – attachments are fully supported. Now in the contents panel of the map document, you can click on the Database tab and note that inside of the map are both the feature layer and the tables.

If you click on the Identify tool and then tap on a hydrant you can discover the relationship between hydrants and inspection records.

Within ArcMap you can sign in to your organization and publish Hydrant Inspections as a web layer within your My Content. To sign in you can either use the Sign In… command under the File menu in ArcMap or you can double click on My Hosted Services in the Catalog window. Once signed in, you can then Share the map as a Service within your organization. Note that your related tables must be in the map when you publish the service! More details about publishing, offline support and related tables can be found in the ArcGIS Server documentation about feature services.

Within the Service Editor, click on Capabilities, enable feature access, disable Tiled Mapping and make sure to check on all of the editing operations before clicking the Publish button. This will create a new service item inside of your organization that will include the Hydrants layer along with the Inspections table and the Violations table as well.

TIP: Editing permissions are controlled at the feature service and if you want to edit related records you need the service to be editable. However within the map itself you can disable editing on the hydrants feature layer and then only the related tables will be editable.

Authoring Web Maps with Related Tables

Next, you will want to create a web map from the service that you just created. To do that, open your web browser, sign into your organization and find the service you just created inside of your My Content. Here you will want to add it to a new map. Within the map you should rename the layers to something meaningful. For example, call the hydrants layer “Hydrants” and rename the Inspections table to “Hydrant Inspections” and the violations table to “Violations”. The names of the feature layer and of the tables will ripple through to the experience within the form when using Collector.

Make sure that popups are enabled for your layers and related tables! If they are not enabled, the related tables will not appear in the form.

TIP: When you configure the popups for your related tables, take advantage of the Title. The title appears on the inspection form so make it meaningful. For example, set the title to be the value of the Inspection Date and/or Inspector field. You can adjust is the sort order for related data as well – this is a cool new feature! In the screenshot below, the sort order for the Hydrants layer is set to show Hydrant Inspections with the most recent inspection at the top of the list and you can see that the Title displays the Inspected date. So if you want to control how previous inspections appear and how they look, you can change the sort order from the parent within the relationship (in this case the parent is the Hydrants feature layer itself) and modify the title.

Take advantage of the ability to re-order/rename and change the visibility of fields as well. It’s important that you prioritize and display what is most meaningful to your related tables just like you do with a feature layer that you create.

Finally you can save the web map, call it Hydrant Inspections, and share it with the groups that your field workforce are members of.

Creating and Maintaining Relationships inside of Collector

Once you have created your hydrant inspection map, you are ready to send your field workforce where no one has gone before.

After installing Collector 10.3 on your smartphone or tablet, you can sign in to your ArcGIS organization and from the list of maps you should see Hydrant Inspections as a new map that you can open and/or download to your device.

Opening the map you will find that the app will try to center the display on your current location- it is a field app after all! Unless you are physically located in Naperville, Illinois, you won’t find any hydrants to inspect! A couple of options here for you – either you could create a hydrant to inspect or you could tap on the bookmarks tool and return to the default map extent in Naperville. Then you can zoom in to find a hydrant to inspect! Regardless of the path you choose, tap on a hydrant and view the form details. If you are on a phone, you will need to tap Show Details but if you are on a tablet you will see the form details straight away.

On the form you will see something exciting! Down at the bottom you will find a section titled “Hydrant Inspection”. There you can view existing related records or create new ones.

Creating new related records in Collector

A related record is modeled as a sub-form of the parent feature. You start by selecting a parent feature (a hydrant) and showing the form details of that feature. From the details you can create a new related record (an inspection). This flows through nested relationships as well (from the details of a hydrant inspection you can create a new related violation record).

By presenting related records as a “sub-form” you have a consistent, predictable flow to navigating hierarchical relationships within Collector that just feels natural. Simple right? The screenshot below shows the related table form for both Android and iOS, along with a magnified view of how Violations would appear within the sub-form of an inspection. Try it out for yourself!

Ok so how would this work if the related record is a feature rather than just a dumb row in a table? Well let’s take a look at the other example briefly mentioned above (the leak detection survey where you have a pipe feature that has multiple readings associated with it).

Here you would start by selecting the pipe feature on the map, showing the details of the pipe form where you can create a new related leak report. Tapping New will bring forward the list of feature types for that related layer and you can choose the type that makes most sense. The rest of the flow is exactly the same as creating a new feature! You can tap on the map button and place the location of the reading (or use the GPS) and fill out the related record form. Below is how this flow looks on an Android phone.

Something to consider with feature to feature relationships is what happens when you tap the Collect button? Well we need to enforce the integrity of relationships as defined in the service! The relationship in this example shows that pipelines are the parent and leak reports are the child. So when you tap the Collect button you will only see pipeline (parent types) and not leak report types to collect from. Instead, you need to select a pipe to create a new leak report. This enforces the integrity of the relationship as we can pass the primary key from the parent pipe feature to the foreign key of the child leak report feature.

Lots of detail in this article for your reference! Here are some important points to remember:

  1. Collector support for related table editing is only supported with ArcGIS Online right now. The next update of Portal for ArcGIS (10.3.1) will include support for creating a web map that supports editing of a related table. No update to Collector will be required to support Portal.
  2. Make sure to include all related tables in your map document before you publish as a feature service.
  3. Where possible use GlobalID fields to model relationships and enforce referential integrity.
  4. When authoring your web map, make sure to enable pop-ups on the related tables and spend the time to rename layers and configure the title, sort options and fields.
  5. Be a GIS hero in your organization and reap the benefits of configuring and deploying Collector!

The 10.3 release of Collector for ArcGIS is available NOW on the Android platform and as of March 9th is now available on the Apple platform as well. Please provide your feedback on Collector. Let us know about your successes and your needs as well by emailing our dev team at Collector4ArcGIS.

This entry was posted in Apps, ArcGIS Online, Mobile and tagged , , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply


  1. villersb_neorsd says:

    Great new functionality! Is there any plan to allow users to edit these related tables via the web browser? Or is this functionality strictly limited to the Collector application? It would be great to allow our users to update the inspection forms with a mouse and keyboard, after they have returned from the initial fieldwork.

    • Jeff Shaner says:

      @villersb_neorsd – yes. This is planned for a future release of ArcGIS Online but unfortunately you will need to use ArcMap for now!

      • dlengton says:

        On this topic – although the related data can be shown in ArcGIS Online it currently doesnt show Attachments of related data… also it would be great if the Web App Builder was able to filter related data… And then the same functionality needs to be in Operations Dashboard as well :)

      • Mike Scanlon says:

        Hi Jeff… Any progress to report in the last year? I will beta test a new widget if you have one.

      • jamatney says:

        Hi Jeff – Awesome feature addition for Collector for ArcGIS – the form feels robust and provides rich interactivity potential for users.

        The Web Mapping Application I am working on for a federal agency which also uses related tables – we relate Project Descriptions to Milestones – but unfortunately the Web Mapping Application cannot be released as a final product long as users are unable to update Milestone forms (equivalent to inspection forms) with a mouse and keyboard via a web browser – this is because we cannot legally require all federal employees to have access to a smartphone. So as you could imagine – I am truly excited for this browser interactivity feature to be included in a future release of ArcGIS Online, and was wondering, like Mike Scanlon, if there was any word on the timeline for this development?

        Much appreciated

  2. says:

    Thanks for the blog update! My co-worker and I couldn’t get the Violations to relate to the Inspections. We were able to create the Violation but then when we selected “View” under Inspections it still said No Violations found. Possibly an error in the relationship class?

    Also, how do I view a picture taken as part of an Inspection or Violation? I can’t seem to find anything in ArcGIS Online or ArcMap (though the violations and inspection records are showing up). No attachments are shown in ArcMap and I can’t figure out how to display the related table in the ArcGIS online popup window.


    • Jeff Shaner says:

      @mason – completely my fault! I uploaded a bad map package!! If you look at the relationship class you will see the error.The foreign key on the violations table was set to the GlobalID field! It should have been to a new, unique GUID field. I have updated the map package link with a proper package. Thank you for posting this comment!!

      Unfortunately ArcGIS Online does not yet support navigating relationships. It can show a table from a feature layer but that is all. Along with editing of related tables, this will be coming in a future release of ArcGIS Online.

  3. miguel says:

    I’ve just downloaded the map package, and opened it ArcGIS Desktop 10.3. However when I try an identify on the hydrants, I can’t see a record for the hydrant inspection. I then opened the Violations and the wHydrantInspection tables, and they showed no records. Is this correct? What am I doing wrong?

    I’d really would like to see this functionality working so that I can demonstrated to my colleagues. Any advice on how to get this going will be greatly appreciated.

  4. colsongraymont says:

    I am experiencing the same issues as Miguel; the violations and hydrant inspection tables appear to be empty?

  5. Randy says:

    I’m curious how symbology might be set up with related tables to show hydrants due for an annual inspection, those that passed the inspection, and those that failed or need follow-up. I assume this would require a new field in the wHydrants table. Any suggestions? Thanks.

    • Shaun Gibbins says:

      Its a shame no one has answered this question, I assume thats because it is currently not possible!

      Please consider applying this enhancement, if you have a large number of assets how are the field workers going to keep track of what has been inspected and what is still due???

      • abeller says:

        I’d like to second that enhancement. This is exactly the type of functionality I’m looking for, but so far I’ve been unable to find a way to make it work.

      • Thass says:

        What I did was create a separate map service showing fire hydrant status base on date.
        - In ArcMap add you fire hydrants and inspection table
        - Join the fire hydrant features and the inspection table (base on GlobalID and GUID as explained above)
        - Setup a definition query on date NOTE: watch out for the ‘gotcha’ when setting up a query on a table, you must first select something from the feature table then use an AND and add a query for the join table.
        Example in the definition query tab on the Layer Properties dialog:
        FireHydrant.OBJECTID IS NOT NULL AND
        FireHydrantInspection.TESTDATE >- ’2016-01-01 22:46:56′

        - Now you can symbolize on the status i.e PASS, FAIL, NEEDS ATTENTION etc
        - I use large color circles, so when they appear with the feature they look like halos.
        Save the document and create a map service then add it to your webmap.

        The one issue is that you will not see the new status until the field unit is synchronized. This is not ideal for us but better than nothing.

        I hope this helps.

        • rtruong says:

          After successfully published to my service, I add the feature from web to my webmap, but only the related table came in not the feature. In this case, cannot be view neither from webmap/Collector.

        • writter says:

          Hello Thass/anyone else familiar with this technique? I don’t understand it/can’t get it to work.
          I’m using ArcGIS Online rather than a self hosted Server Portal if that makes any difference?
          The things I don’t understand are:

          In my setup, if I create a second feature service, this will be totally independent of the first one (so any changes to the related table information in the first service won’t feed through to my second symbolizing service)

          What is the definition query adding to the mix? (This is also mentioned in the linked article.) Once the join has been created you can symbolize on the joined data anyway, without the definition query (at least I can do this in ArcMap, not AGOL)

          In memory joins aren’t supported by ArcGIS Online, so when I upload as a service definition as suggested, the feature layer doesn’t work – you can only see the related table. If he’s talking about permanently joining the related table field to the feature, then the whole thing seems a bit pointless? Might as well just have a flat table?

          I’d be grateful for any guidance given.


  6. j_roberson says:


    First off, thanks for the great blog post! I seem to be having a problem and I’m not sure if I’m doing something wrong or its technically not possible. I’m trying to create the following relationship model..

    (Hydrants > Inspections > Violations)
    (Hydrants > Inspections > Different Table)
    (Hydrants > Inspections > 3rd Related Table)

    I’m sticking to the 3 layers deep approach but I have 3 related tables to the Inspections table. I set everything up following the instructions and I’m not even getting the Inspections table as an option to collect when creating a new Hydrant feature. Can you confirm that this approach is possible? I can share my demo map as well if that would help.

    Thank you!

    • Jeff Shaner says:

      @j_roberson – I think that this is because you don’t have the popups enabled in your web map. By default they are not enabled when you add the feature service to your web map (which is different than how feature layers themselves work). This is all about to change though. There is an ArcGIS Online update that will be going live Monday night and it will automatically enable popups on related tables so you won’t have to think about this.

      Sorry for the inconvenience with this right now!

      • j_roberson says:

        Jeff -Thanks for the response. I do have the pop-ups turned on for my tables and it did not work. I’m having a hard time testing as 95% of my devices are iOS and our lone Android device is hard to get my hands on.

        Can you confirm that this is technically possible? I can continue to build out of my data model as I wait for the iOS release but I don’t want to build something that won’t work. Thanks in advance.

      • paulcone says:

        Pop-ups on related tables are nice, but it would be great if you could symbolize based on values in the related table. I’m setting up a map of building footprints, and the related table has inspections of the buildings. Would be great if I could color the footprints based on a value in the inspection table. It’s a no brainer to do this on the desktop, but if I try and push it up to the service it gets lost.

        • imgooch says:

          How did you do this? I’m trying to symbolize a layer based on attributes in a related table and can’t figure out how to do it. Apparently not a no-brainer to me haha.

          • simo says:

            This is the function I’v been looking for.
            I can’t understand why we can’t symbolize the feature while we can really show the related attributes in the popup window.

  7. jamespreston says:

    Is there any word on how close the iOS release is?

    • Jeff Shaner says:

      @jamespreston – we have had some challenges with the Apple approval process unfortunately. We are waiting for review with Apple right now so, crossing our fingers, it will hopefully be available this week!!

  8. tripm says:

    Does the related table view work in the configurable apps? Would like to use the finder to look up features and see the inspections.

  9. johnwodonnell says:

    I’m experiencing the same issue as miguel and colsongraymont. Neither of my related tables contain any records, so it’s tough to implement the workflow. I’m interested in using this same general process for stormwater structure inspections, but need to show it off to my boss first. Any help?

  10. rtruong says:

    I too, also experiencing same issue as miguel and colsongraymont. Neither of my related tables contain any records. I’m currently running ArcGIS 10.1. Would appreciate for any guidance.

  11. dlengton says:

    For viewing of all base and related data: What I’ve done for now is to export the layers (base feature and related table) to CSV. From there I ported it to XLSX files. I then used a cool feature of Excel that allows you to create a join between two different spreadsheets. This allowed me to see the base features as well as their related data in one view…
    Here is a link that explains how to do the join:
    Here is my join query:
    SELECT * FROM `D:\Projects\AGOL Seminar\CSV\Meters.xlsx`.`Water_Meter_0$` a LEFT JOIN `D:\Projects\AGOL Seminar\CSV\MeterReadings.xlsx`.`WaterMeterReading_1$` b ON a.GlobalID = b.MeterGuid

    • vmshort says:

      I am struggling to get the following relationship working.
      - Feature Class to Feature Class to Table
      ie. SurveyUnitFC to ObjectFC to IssueTable

      I have tested them in separate feature services but they do not work in the same one.
      - Survey UnitFC to ObjectFC works
      - ObjectFC to IssueTable works

      It works online but not offline. The Android app error is ‘map failed to download. Fail to create replica, multiple layers are referencing a dataset which is not supported). I can create a replica via the rest interface on the device too.

      Any help would be greatly appreciated.

      • martinkoli says:

        I could not download my maps to work offline in Collector. So, I did some tests of various situation with relationship classes to find working routine. First, I tried very simple structure, when I passed, then I tried my more “complex” GDBs. I created hosted feature services with ArcMap 10.3. Relationships were composite 1:M based on GlobalIDs and GUIDs. Attachments enabled until 1st table level in the tree. I focused on feature to table to table situations. Please confirm my tests. I apologize for very long comment.

        Some conclusions:
        feature to feature to table not working
        just one feature class with own (sub)tables are working in just 1 hosted feature class service
        no null fields requirement needs to have default value

        ​ Map
        hosted feature service
        hosted featured service
        hosted feature service
        hosted feature service
        hosted feature service
        hosted feature service
        hosted feature service

        Not working:
        Map (everythhing OK, until sync)
        hosted feature service
        ​ hosted feature service
        ​​ Map
        hosted feature service
        ​ Map
        hosted feature service
        ​hosted feature service
        hosted feature service
        ​​​ Map
        hosted feature service ( 3 feature classes to 1 (common) table, simple 1:many relat.class, 3 individual GUID)
        table (same up)
        ​​ table (same up)
        ​hosted feature service
        hosted feature service (3 feature classes to 1 (common) table, simple 1:many relat.class, 1 common GUID)
        table (same up)
        ​​table (same up)
        ​hosted feature service

  12. rtruong says:

    I’m using ArcGIS Adv 10.1 SP1 to publish my point related feature table to ArcGIS Collector, however, when ‘identify’ a point feature from Collector the attribute of the related table shows no-data just field names, but the attribute for the point feature has the attribute data. Yes, I do have ‘attribute’ and ‘pop-up’ both enable from the web map.

  13. matermaps says:

    Attachments using camera causes Collector to crash on Android 5 (Samsung Galaxy S4). It works fine if attaching a picture from Gallery!

  14. rmchubb says:

    Just started testing Collector 10.3 on an I-Pad. Every time I submit a new feature, the map closes. There is no data loss but it is very annoying to re-open the map so often.

  15. TomTomMapGuy says:

    Any idea when the 10.3.1 release will be? iOS and Android respectively

  16. matt6681 says:

    When viewing the 2nd related table (Violations) in arcmap from the hosted feature service I am getting the error:
    “Could not load data from the data source. If you can correct the problem, press the referesh button to reload the data. Possible problems can include bad network connection, invalid field, etc. A general error when something is wrong with a Field. [ViolationID].”

    I created my own data with your setup with a relationship class from GlobalID (Feature Class) to GUID (table) and get the same error. Thoughts?

    • anthonyj1 says:

      I get the same error too on services I have setup with GlobalID and GUID. ESRI support have told me this is a known limitation of ArcMap: Here’s the reply:

      The issue is with how ArcMap reads the Feature Service. Because Feature Services are meant to be viewed through web applications, they are written in a format that ArcMap doesn’t read completely. ArcGIS Online reads the Feature Service correctly because it understands JSON, while ArcMap understands the simpler SOAP format. What you are experiencing is an expected outcome and a known limitation of ArcMap.

      But strangely using the fire hydrant sample (which does not use a GlobalID/GUID in the first relate between hydrant and hydrant inspection) it does work for me (ArcMap 10.2.2). So maybe its the GlobalID/GUID that are the problem? Worth a go if your data collection is suitable for the surveyor assigning a unique ID themselves.

      Sadly for us, this is not practical. My earlier excitement at seeing related data in Collector has faded into despair…!!! I’m sure most of use want to get data from Collector into ArcMap?

      The only other options seem to be using ArcGIS Pro instead of ArcMap or publishing the service from ArcGIS Server (which may work for some, but again not in our scenario).

      ESRI, are there any plans to overcome this ArcMap limitation?

  17. lynn_carlson says:

    Can / will support for related table editing work if the feature service is hosted on ArcGIS Server instead of ArcGIS Online? If not, does the use of ArcGIS Online for this functionality consume credits?

  18. m.megahed says:

    This is great but I think there is an issue.
    I tried the same solution with my data, I found that I can add point from collector , edit its properties, and create a related record.

    the problem is that when I add an Attachment to the related table, the collector tells me he is posting attachments, but when I try to show the attachment form AGOL , I cannot see the attachment anywhere, even when trying to show the attachment from the rest API for the related table, it states no attachments are available.

    when adding attachment to the origin table -point feature- it works fine, shown in the popup and can see its ling in the rest API, but not for the related table attachments.
    Any Advice

    • KSmiley says:

      I’m having the same issue, the attachment works and displays with both the feature, and the related table within the collector app. However, when looking at the feature on AGOL or in desktop, only attachments to the feature display, not any from the related table.

    • amarinelli says:

      If you export and download the hosted feature service in ArcGIS Online as a FGDB, then using the identify tool in ArcMap will allow you to view and manage the attachment for the related standalone table.

  19. mapit says:

    Hi All, I have been experimenting with this new functionality now for a few days and I find it’s potential very exciting. I have however found an interesting quark though… It seems that on an iPhone 4 when attempting to view a feature’s related records through Collector, nothing will show up until you rotate the screen. Almost as though there is a refreshing issue or something of the sort. I have not tested this completely, but the issue does not seem to exist on an iPhone 5 or iPad… Not sure if anyone else has experienced this, but it might help to at least know why you cant always see your records if you are using a 4.

    P.S. If anyone has a remedy for this, I would be happy to hear it.

  20. cgiadminuser says:

    We’re running ArcGIS Server 10.2.2. I’m able to edit related records in feature services in the iOS version of collector app but when trying to do this in the Android version of collector app the application crashes when clicking “show details”. Any idea why this would occur? Is ArcGIS Server 10.3 required?

  21. rkoelpin says:

    Is there a way to edit a second feature’s attributes in iOS AFTER editing a first one without having to hit update, leave the application and then restart? Seems pretty intuitive in Android version. This is using collector 10.3 on an ipad with iOS 8.2 .

  22. clrogers says:

    Is there a Developer version of ArcGIS Server available for R&D, testing, and/or Rapid Prototyping in an individual environment? Being able to have access to a complete Enterprise scaled environment for R&D and learning/educational opportunities would be immensely important for those interested in looking at potential app development. Something like a restricted user version would be awesome and go a long way to promoting the adoption of ArcGIS and Collector Apps in the world today. Thanks in advance for your responses!

  23. innisfilgis1 says:

    I am having 2 different issues that may or may not be related.

    First of all I cannot seem to get the pop up enabled on the hydrant inspection. When I click “Show Related Records”the table pops up at the bottom, but it doesn’t display when I use the Explorer App on my phone.

    Secondly, I cannot set the data to “sync”. I figured out the reason is that they do not have Global IDs, so I added those, but then the Help page also says that you need to make the relationship class based on the global IDs. I then read somewhere (now I forget where) that you can use the “Migrate Relationship Class” tool, but because the relationship is not based on the ObjectID it doesn’t migrate. So a) How do I fix this; and b) I am using the template I downloaded, so why isn’t it already set up to work properly when downloaded?

    Any help is appreciated!

  24. dsivertsen1 says:

    Thanks for the great work and example. I tried using the example with Collector to add a hydrant – FacilityID seems to be a text field in the download, and is left null when Collector is used to add a hydrant, so the relationship can’t work. Is changing the datatype the best way to make this work?

  25. aitorcalerogarcia says:

    I’ve just download the mappackage linked in the post, but the relationship tables are empty! :(

    • kate818 says:

      @ aitorcalerogarcia, the tables will be empty until those records are created in the field. I created my own tables and made the relationships between the table and layer on my own to match the example.

      I am wondering if anyone knows how to extract the table information to create a report of the inspections? We would like to be able to print it out.

  26. imgooch says:

    I was eagerly awaiting Portal 10.3.1 so I could make use of related records in Collector but now Collector crashes every single time I try to view the details of a feature that has related records.

    The same happens on both Portal and AGOL when adding a linked feature service from Server, but does NOT happen when using a hosted feature service on AGOL.

    I’ve tried republishing the services, recreating the maps, recreating the popups, reinstalling Collector, and rebooting my device but nothing changes. Collector crashes every time I open the details of a feature with related records.

    Any suggestions?

    • cityofmerced says:

      Has anyone been able to get this to work with their own data? I followed all the steps to create a Collector app for our Public Works Sewer Division for CCTV. Everything appears to be correct but when I add a new record and then try to view it, there is nothing there in the related table. Any suggestions would be helpful. thanks

  27. Jeff Shaner says:

    All – I have updated the map package referenced in this blog article ( THe Hydrant to Inspection table relationship in the previous package did not use a GUID field for the foreign key. When creating relationship classes, please make the primary key a GlobalID field and the foreign key a GUID field. Do not use the GlobalID field in your destination table as a foreign key. A GlobalID field is guaranteed to be unique and unique and that includes being unique from the primary key. My apologies for any confusion this may have caused. Jeff

    • rtreecare says:

      Jeff, in order to be considered a 3 layer deep, nested relationship, does the first relationship destination field have to be the origin for the second relationship? (I.e Hydrant GlobalID–>inspection GUID–>violation GUID). OR does the third layer need to have 2 GUID fields for the GlobalID fields of the first and second layers (i.e. Hydrant GlobalID–>Inspection GUID, Inspection GlobalID–>Violation GUID, and Hydrant GlobalID–>Violation GUID_2?

      Also, is it possible to use Collector if there violations were to have a 1:M with a fourth table? I don’t understand if that would be 4 relationships deep or not.

      Thank you.

    • imgooch says:

      What is the status with all of this???? I am at my wits end. I thought this post about the GUID would possibly help with my issues getting this to work but after much testing, using related records simply does not work whatsoever. Yes I’m on Portal 10.3.1

      I used GlobalID’s for my relationship because everything I read said you must….at least to be able to enable sync. So for testing I thought I’d at least try a GUID field as suggested. Except a GUID field must be managed by me so how could this possibly be used in a related record? It errors out immediately. So instead I tried GlobalID for primary and ObjectID for foreign – which only works when the “attributed” box is checked btw – and removed everything that I needed to add in order to have sync. I have the same issue here as I did using both GlobalIDs…except now, Collector also crashes every time I add a related record….like it did

      What happens in both Collector, and my Flex app, is that it creates the related record in the destination table but doesn’t create the entry in the relationship class and therefore it does nothing of use!

      I’m so fed up. This article implies that this functionality works. But not only does it not work in Collector, it doesn’t work ANYWHERE except ArcMap…and not even there if you bring the feature service in rather than the data connection.

      I worked with tech support for several days on this issue and they tell me it’s a bug in both Collector and Flex that doesn’t allow for adding related records. THEN HOW DID YOU WRITE THIS ARTICLE SAYING IT WORKED IF THERE IS A BUG THAT SAYS IT DOES NOT?? Since it’s a “bug”, my support ceased and I can get no resolution to this issue.

      Apparently someone at ESRI got this to work or else it wouldn’t be said that it would work at Portal 10.3.1. Regardless, it doesn’t work in Flex, or via ArcMap connecting to the feature service so the version of Portal doesn’t really matter. What is going on?? I was supposed to have this working months ago and have no idea what to even tell the users…who are waiting for this.

      • imgooch says:

        Well in case someone else reads this and has the same issue as I did, I have finally figured the issue out.

        Turns out that creating a relationship class using the create relationship class tool in ArcToolbox has some sort of bug. Despite everything appearing to work correctly with the creation, it simply causes issues….as noted above. I found that you can create the relationship class in Catalog by simply right-clicking the dataset, choosing new > relationship class. A wizard then steps you through it.

        Using this method, for some reason, cleared up all my problems! Well, except one – see below.

        The other thing to note is that you can’t have a feature class in a service multiple times or it crashes Collector upon attempting to create a new related record.

    • sstolyarov says:

      Correct me if I am wrong but in the downloaded map package the relationship between Hydrant and Inspection is based on the FACILITYID as a primary key and a foreign key in the Inspections. Unless I am missing something. If I create a new relationship class and use GlobalIDs between Hydrant and Inspections, when I click “Add New” on the Hydrant Inspection, in editing mode, nothing happens… Why would this be?

  28. reich0756 says:

    Are we able to create a relationship between “feature-feature-table” or “feature-feature-feature” or are we limited to just “feature-table-table” or “feature-table?”


  29. borja.pares says:

    Great post! I’have already the example working!
    I have some questions that are intersenting for me and for sure for other persons.
    Is there any way to populate a field of a related table like Violations, with the value of an atributte of the parent feature class?
    Is there any way to extract the values of the coordinates (lon, lat) and store them in two different string or float fields in the related table?

    Thanks in advance!

  30. mhoutz says:

    I have an issue with related records in Collector. Can you no longer copy features that have a related table set up? I noticed that when I removed the relationship class and published my feature service, the “Copy” option in the menu is now available. I can see why this would be disabled on features with related records, but can someone please clarify? Thanks,

  31. sgrcgis says:

    How can you add images?

    • jesterjace says:

      If the service is hosted on ArcGIS Online you can go to the Details page, look for the name of the service for which you want pictures, and click on Enable Attachments.

  32. jstangl26 says:

    Is is possible to edit the feature class attributes and create a new related table record each time a feature is edited?? The Collector app does allow for multiple related table entries to be recorded, which is great, but it does not reflect any of the edits/attributes in the feature class.

  33. coreyunger says:

    Are related tables supposed to work when it’s two feature classes related to one table?

    For example I have CulvertLines and CulvertPoints, both related to CulvertCondition with a 1:M relationship with GUID as the PK. Even as a hosted feature service I cant get it to work. It wont post updates to the related table.

  34. aug_aug says:

    Can Portal (10.3.1) now do Feature to Table relationships? Can I have a fc with a related table and create a new feature and create a new related record as well in Collector? I’m using GlobalIDs for the keys and I thought I had this working in Server, we switched to Portal now and it’s not working apparently…anyone have any experience with the above situation? Thanks!

  35. Damon says:

    If I understand correctly a future update will allow setting up the related tables online instead of using the desktop.
    Say your city updates an entire new neighborhood and now has a large amount of new hydrants and some are now removed as well.
    Currently to update the hydrants in the service you currently have to overwrite the service which also overwrites the related table data so you would need to download the table import it into your desktop map table and then overwrite the service with the hydrant updates so you don’t loose your related data just to update the hydrant points. or you could update them thru the web map as well.
    Thinking of other assets we have that update often this could be time consuming depending on amount of changes
    Will the future update allow just the hydrants to be updated as needed like a stand alone service leaving the related table alone as a separate service?

    • Damon says:

      Another question, will anything like the Make Query Table be available, I have used this tool to turn would be related one to many tables into actual layers a few times and it would be useful to see the related table in the service as a layer in the web map as well. It creates multiple records in a new layer based on the table resulting in the table being mapped per record.

      • Damon says:

        Out of curiosity I replaced the table with another layer, this worked. I can now create a new related record within collector, I just select the main record, go to the details, click new, fill out the form, then place the location dot over the existing originating record and now I have a viewable related record, the only thing that would make this better is if it did the location as a copy from the originating record.

  36. nilsbabel says:

    Thanks for the great info. In the blog you mention that many : one relationships are supported. But I don’t understand how this works. If I have two feature classes with a many : one relationship and I want to make the many feature class the origin it doesn’t work. It doesn’t appear that there is a way to associate an existing feature to be in the relationship. You can only view existing related features or create a new feature that will be related to the current feature. That seems like it only supports one : many not the other way around. Am I wrong?

  37. smurage_prj says:

    Can you work with related tables in operations dashboard to display the summary of the information?

  38. asxantos says:

    Hi there. I’m working on a web map where I can do audits for home. Basically I want to be able to have a site feature layer (home) and then created related audit table records. That works great. However, is there a way for me to then create a related feature (example, rain barrel) from the table? Or can this only support feature to feature relationships. Looking for Sites > Audits > Rain Barrel. Or do I need to be doing Sites > Rain Barrel separately? I’m hoping for the former. Thank you.

  39. I have developed several services and have used offline editing successfully with Collector. I created a new, more complicated one with a feature class and two related tables. Each has attachments. It’s published from an sde geodatabase on our server rather than arcgis online. We are making use of subtypes and domains. It works fine when connected using the latest version of Collector. When I downloaded it on an iPad 2 or iPhone 5, it downloads successfully and I can open it. I can also edit the feature class. However, when I try to add to or view the table, Collector closes. There is no error message, and this happens every time. I tested it on an old cheap Samsung with an older version of Collector, and it works fine. I’m not sure if the difference is the device or the version of Collector. I have republished the service, reinstalled collector, but can’t get disconnected editing to work on an iPhone or iPad.

    Has anyone else experienced this problem or do you have any suggestions? I’d appreciate any advice.

    • jtharris05 says:

      I am currently having similar issues. Difference mine does not crash it just simply does nothing when I go to create a new record in my related table. I am using an iPad for collector and can not add new related records to my related table for inspection reports at each sample site. I can view and edit records in my related table, but not create new ones. ESRI has been working on this issue for me since 4/14. I published from our local server to Arcgis Online.

    • tradulovic says:

      It’s a bug. The only workaround is to disable editor tracking or use non iOS devices to collect data.
      ESRI is working on updated versions of Collector and they are hoping to have them ready in mid 2017. Hopefully this issue will be resolved with a new release.

  40. rtruong says:

    Collector is a fantastic out-of-box apps, especially working with related table. However, I think there is a limitation as far as symbolize from the related table. I seem not being able to find a logical way to have Collector symbolize data retained from the related table.

  41. Angela Vander Pas says:

    I found this article very helpful to set up several applications. After doing a data check on my related tables I see GUID field with null values and data. Is there an issue with collection method in the field if you are collecting a new feature do you need to submit the addition then collect the related information?