Select to view content in your preferred language

Relationship Classes in Field Maps

7062
12
12-22-2021 02:06 AM
AdminWPZ
Occasional Contributor

Hi all

From the Field Maps resources: https://doc.arcgis.com/en/field-maps/faq/requirements.htm 

  • Related records

    "Feature-to-table relationships, feature-to-feature relationships, and table-to-table relationships (where the first table is accessed through a feature) are supported in Field Maps. For each, one-to-one and one-to-many relationships are supported. Relationships can be up to three levels deep. It is recommended that you use Global IDs when defining relationships. User-maintained relationships are not recommended."

The following case is described in the ArcGIS Pro Resources (https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/create-relationship-class.ht...😞

  • "Simple or peer-to-peer relationships involve two or more objects in the database that exist independently of each other. For example, in a railroad network, you might have railroad crossings that have one or more related signal lamps. However, a railroad crossing can exist without a signal lamp, and signal lamps exist on the railroad network where there are no railroad crossings. Simple relationships can have one-to-one, one-to-many, or many-to-many cardinality."

If I use a crossroad:signal lamp = 1:M cardinality Field Maps won't let me set points for independent signal lamps (the feature layer doesn't show up in the menu). How do I make this case with independent feature classes happen in Field Maps?

12 Replies
Stefan_Thorn
Frequent Contributor

Hi @AdminWPZ ,

I have also a project with several related feature tables we used in Collector app. It also works as expected in Field Map.

I have saved all the feature layers and related feature layers/tables as a "group layer" to a hosted feature layer from Pro. 

In Field Map, You first have to select the crossroad to which you want to relate the signal lamp.

1. select crossroad

2. scroll down and see which features are related

3. choose signal lamp > Add .

0 Kudos
AdminWPZ
Occasional Contributor

Hi Stefan,

The way you describe works for me as well, I can collect a crossroad and then link one or several signal lamps to it. My problem is that I'm not able to collect points for signal lamps that are not linked to a crossroad (i.e. they're independent). As soon as I mark the signal lamps layer as "destination feature class" in the Relationship Class defnition, the layer disappears from the available layer list in Field Maps.

According to the above thescription this should work in ArcGIS Pro, but for me it doesn't work in Field Maps.

Best,
Andrea

Stefan_Thorn
Frequent Contributor

Hi Andrea,

This behavior is the same for me. Also in the collector app. In the related tables the attribute guid of parent table is 'allow null' which makes it possible to add new objects in those layers in Pro. but this seems to be ignored in Field map.

Maybe the layers should be published separate? 

DuncanKinnear
Occasional Contributor

Hi Andrea,

Following as I am experiencing the same problem. I want to be able to collect directly to 'sub-sites' without necessarily needing to create a 'master' site. I can't work out why it doesn't work in Field Maps. I am using a 'Simple' relationship and still no dice. 

Cheers

Duncan

0 Kudos
AdminWPZ
Occasional Contributor

Thank you all for your inputs. I've tried everything I could think of and didn't manage to achieve a working configuration. I've now ended up

- using featureclasses for non-spatial sub-site data (because I can't add data entries to tables in field maps, or AGOL, for that matter)

- not defining any relationship classes (because it's not possible to collect data for independent 'sub-sites' if they're defined as sub-sites

- creating an additional attribute field in the sub-site featureclasses where I enter the 'master' IDs by hand.

- Our master IDs are also entered by hand. Since AGOL doesn't have attribute rules I've created a dashboard that shows the currently highest ID for each featureclass, so our fieldworkers can look up the newest ID in the dashboard and then enter the next higher ID in the fieldmaps.

Talk about smart automatization...

If anyone finds a better solution please let me know 🙂

DuncanKinnear
Occasional Contributor

Hi guys,

I found the solution - a little unsure how it took so long to track it down as it is quite a simple fix!

Open up your map using Field Maps in the web browser:

DuncanKinnear_0-1644743643703.png

 

Then click into collection settings, and make sure 'Show related types' is enabled. You should now be able to collect directly to the child feature class!

DuncanKinnear_1-1644743688490.png

 

 

AdminWPZ
Occasional Contributor

Hi Duncan,

Wow, this leaves me a bit speechless. Why would anyone even implement such a mean button, and on top of it deactivate the function by default and hide the button in the details?

Anyway, thank you so much for finding and posting the solution!

Kieranmg
Emerging Contributor

Boom! Thank you, this certainly wasn't obvious or easy to google.

Caitlin_Todd_LCOR
Regular Contributor

Hi all, 

Duncan, thank you for posting that solution! I never would've found that on my own since usually that functionality is configured within a web map.

I have a many-to-many relationship class I've published to AGOL and brought into Field Maps and I'm coming across a similar issue where my related records aren't showing in FieldMaps not even in the pop-up (even though it's set to show all related records), I tried implementing the solution above but it still didn't work. 

Are Many-to-Many relationships not yet supported in FieldMaps?