Select to view content in your preferred language

Field Maps Inspection/Maintenance Workflow & Record Management

213
4
2 weeks ago
dhertel
Emerging Contributor

I have been working to build a new inspection & associated maintenance tracking protocol for my Public Works Dep. I have a point feature layer of representing thousands of stormwater management facilities. Each facility is inspected every two years, and the result of the inspection drives a need for maintenance. The maintenance is then performed, and I need to have a record of both the inspection, and any associated maintenance that was performed. There are only a few fields required to capture the contents of the inspection and the maintenance. 

I saw this as a typical relationship class application, and created one with the mapped stormwater facilites as the parent layer, and a table with the required inspection and maintenance fields as the child, using a GLobalID and GUID field for the relate. Then uploaded to AGOL, brought into Field Maps Designer, built a form to capture the inspection data, created some test inspections, and then used the Analysis tab in Map Viewer to create a dynamic feature layer with the inspection records from the related table joined back to the parent feature layer. I can use this to view the inspection results and see what features require maintenance.

I am now at a pivotal point that I feel never gets addressed by ESRI with inspection work flows, task assignents, ets. I need to be able to create associated maintenance records for these features, that will be stored in a database as a one-to-many relationship. I feel like this is something that keeps getting lost in the suite of ESRI inspection work flows. I just went through the functionality of enabling Tasks in Field Maps and I don't think it will work for my needs, as it seems to work in a one-to-one relationship, one task per feature and you can only update the attribute, not build out a one-to-many database over time. 

I feel like I can't be the only one needing this funcitonality, so I'm curious what others have done to solve this. It seems like the Joined Feature Layer is somewhat fickle, not allowing updates to the parent or childs schema. If I could reliably update this joined layer with the maintenance data, or somehow use the data from the joined layer to drive updates on another related table for maintenance records, that seems like it would fulfill my needs. I am not skilled enough in Arcade to know how to drive such a function, but would love to hear if anyone has used it for something like this. 

Feeling quite dissapointed in this rollout of Tasks not supporting related records, I honestly don't see many cases where the application is even that useful if you can't leverage it with the functionality of a relationship class. I don't really understand why ESRI keeps releasing these AGOL tools with only partial to zero related data functions, when the whole environment is sold as a multi-user solution for applications that typically rely on that function. 

4 Replies
DougBrowning
MVP Esteemed Contributor

Agreed relationship support has been driving us nuts for years.  It was kind of there with map view classic and WAB then they lost it all going to new map viewer and ExB.  (They could have just ported the code over.)  We had 4 enhancement requests for years on this, and some of them finally made it in, but are not as good as before.  It is literally the first letter in RDBMS, or Relational Database Management System, that has been the basis of data for decades now.  It should be first to be added not last.

On the Tasks thing we have the same issues with it that workforce had.  We have to use their schema.  We have a committee that made our schema, and we have had it for 10 years now, so to just up and change it just for one tool is just plain not going to happen.

For us we preload all the points crews have to go then use symbology to help where.  Then we bugged for years and got them to add Filters in Field Maps which helps a bit.  Dashboards are really what keep us organized now.

Big upvote for you, hope it helps a bit

dhertel
Emerging Contributor

Thank you for the response, I'm glad I'm not the only one somewhat dissapointed in the abilities. I think I've come up with a slution for my application. I'm combining my inspection and maintenance record collection into one related table, and using two seperate field maps, one map uses a form setup for the inspection, and the other has a form setup for maintenance. I filtered the joined view of the inspection records to only show features that need maintenance, and then setup the maintenance form with conditional statements to only present fields to update if the inspection record called for it. And like you said, symbology helps. I stacked the parent feature class on top of the joined view in my maintenance map, with the pop-up turned off for the joined view, and the symbology of the parent layer transparent. This way the viewer sees the inspection results presented by the joined view, but when they click on the feature they get a pop-up for the parent layer and the option to edit the maintenance form. So far it's working, but I've still struggled through a number strange issues with getting the forms to work with the related records, and show up in the different maps. I keep reading about how you can "do this in field maps designer, but DON'T do this in Map Viewer" etc. I wish ESRI would combine all these different map product applications into one. It feels endlessly confusing to go between map viewer, FMD, experience builder, (don't get me started with Dashboards) all for the same project, all with very similar function but nuanced abilites that seem to be constantly changing.  

0 Kudos
ChrisDunn1
Esri Contributor

Hi @dhertel ,

In the example you describe, are the maintenance records related to the parent feature or the inspection record? Basically, do you have one feature with multiple related tables, or a feature with a related table, which then has an additional related table? Both scenarios are supported in Field Maps, with 1-to-1 relationships and 1-to-many relationships.

While only features, not tables, can be enabled for Tasks, you CAN access related records from a task. There is a "Related records" feature action that will link to one or more related tables for the feature. You can also add the Related Records Popup Element to the task popup to view the related records that way. You can use either option to add related records as well as view them, and you can use an integration action to add a related record directly to either of the tables as well. 

I'm happy to walk through your scenario more here, or feel free to email arcgisfieldmaps@esri.com and we can correspond there or set up a call.

Chris

0 Kudos
dhertel
Emerging Contributor

Hi @ChrisDunn1 , Thanks for the response. In my application both the inspection and maintenance layers need to be related to the parent feature. In my application the inspection drives the maintenance. Some inspections don't require maintenance, and others will require several different types of maintenance. Once the maintenance is performed, I need to be able to have record that it was fulfilled, and be related back to the parent feature and the associated maintenance record. This process happens repeatedly for the same features, so I need to store the records in a one-to-many. 

I see you can access related records in the Task pop-up, would this allow for a Form configured on that related table to be accessed via the Task pop-up? If this is possible, this would be a good tutorial for ESRI to make available as I imagine many would need that functionality. 

I think maybe I was misunderstandingTasks as a potential solution for my application, but the reality is that they aren't necessary. For my application, I don't need to send maintenance workers out with the ability to view and update tasks in the field. I have a crew lead who oversees and compiles work plans, so really I need a desktop interface for managing maintenance records. I've realized I can create this functionality fairly simply by having all the fields I need for recording both inspection and maintenance records stored in the same related table. I created one field map with a form configured on the related table to create new inspection records in the field. I then have a seperate field map for maintenance, which has a different form configured on the same related table. This form uses conditional statements to only require certain fields to be presented and updated based on the attributes input during the inspection. So essentially I have one record capturing both the inspection and maintenance data, and those can be created repeatedly and related to the parent feature as one-to-many. I'm using a Joined View in the Maintenance map to  present the results of inspections, and using some filtering  and symbology tricks to lead the viewer to features that need maintenance, with the maintenance form made available in the pop up. I would like this map to be available through an interface I create in Experience Builder, and I'm now having some issues with the related records being available through Experience Builder. I am going to email for support with those specific questions. 

-Daniel

0 Kudos