The Esri ArcGIS Portal Feature Service Reader has most of the capabilities needed to read from a Utility Network including being able to set branch versioning. However there doesn't seem to be a way to resolve domains that are defined at the subtype. The Utility Network uses the subtype layer concept where domains can be applied differently on each field by subtype. Is accessing the subtype domains something the FME can/will support?
@jimmybowden29 Have you tried the reader parameter Resolve Domains? This should return the resolved domain description for the domain code. i.e. attribute Material would also return Material_resolved. Or is this not returning the correct value.
@jimmybowden29 Have you tried the reader parameter Resolve Domains? This should return the resolved domain description for the domain code. i.e. attribute Material would also return Material_resolved. Or is this not returning the correct value.
@Mark Stoakes Yes Resolve domains works when the domain is applied at the field level. However with the subtype layers of the Utility Network domains can be applied to individual subtypes only.
For example the field material has no domain applied as shown in the first image. But the subtypes Water Main and Service have different domains applied (image 2) and these don't resolve in the FME workbench(image 3). It's an issue that Esri doesn't even handle very well.
@jimmybowden29 OK - this looks like something we need to support.
@Mark Stoakes
Hi Mark
We are also struggling with this exact same issue. Should I be logging a ticket with my vendor to escalate to Safe?
Cheers
@Mark Stoakes
Hi Mark
We are also struggling with this exact same issue. Should I be logging a ticket with my vendor to escalate to Safe?
Cheers
@grahamwood_hwc We have a change request logged for this issue - FMEENGINE-74348. I think the only workaround at the moment is to build the lookup table by exporting the domains. I think you can either export the UN to a file Geodatabase and then use the steps suggested in this article or export using the Feature Service REST API and FME HTTPCaller.
I was wondering if a workaround would be to read the json of the feature service layer and create a lookup from there, rather than having to export the UN. Each subtype shows up in the JSON:
"id": 1,
"name": "Service Pipe",
"domains": {"tracerwire": {
"type": "codedValue",
"name": "7_Yes_No",
"description": "Valid Yes, No values",
"codedValues": d
{
"name": "Unknown",
"code": 0
},
{
"name": "Yes",
"code": 1
},
{
"name": "No",
"code": 2
}
],
"mergePolicy": "esriMPTDefaultValue",
"splitPolicy": "esriSPTDuplicate"
},
If a domain is assigned to all subtypes then it shows as inherited
"lifecyclestatus": {"type": "inherited"},
I was thinking about using the resolve domains in the feature reader and then creating the rest of the domain resolved attributes from the json... If anyone is quicker with json than I am, post the results here...
@jimmybowden29 @grahamwood_hwc We have added support for domains that are defined at the subtype for ArcGIS Online to FME 2023 (beta build 23210). Beta builds are available here if someone wants to test this - wait for build 23210.
(You can have multiple versions of FME Desktop installed - just use a different install folder, i.e. c:\\apps\\fme2023beta)
Thanks @Mark Stoakes
we have downloaded and tested this and found ESRI Utility Network Asset Type Field resolves but the Asset Group field doesn't.
Thanks @Mark Stoakes
we have downloaded and tested this and found ESRI Utility Network Asset Type Field resolves but the Asset Group field doesn't.
@grahamwood_hwc Thanks for taking a look. I think the Asset Group might be a subtype so there might be additional work for us to do there.
@grahamwood_hwc Thanks for taking a look. I think the Asset Group might be a subtype so there might be additional work for us to do there.
@grahamwood_hwc support for resolving subtypes should also be addressed in the latest FME 2023 beta builds (build 23221 or higher)
@grahamwood_hwc Thanks for taking a look. I think the Asset Group might be a subtype so there might be additional work for us to do there.
Hi @Mark Stoakes ,
I'm testing this on behalf of @grahamwood_hwc , I've installed Build 23226. This build won't let me add a portal feature service reader if Resolve Domains is set to Yes. It works as expected if set to NO,
Error Log below:
Python Exception <AttributeError>: 'int' object has no attribute 'code'
Failed to obtain any schemas from reader 'ARCGISPORTALFEATURES' from 1 datasets. This may be due to invalid datasets or format accessibility issues due to licensing, dependencies, or module loading. See logfile for more information
Workspace generation failed. Parameter file was C:\\Users\\delores\\AppData\\Local\\Temp\\FME_1675988125684_31536.
@grahamwood_hwc Thanks for taking a look. I think the Asset Group might be a subtype so there might be additional work for us to do there.
@sam.delore @grahamwood_hwc this was a problem with earlier builds of FME 2023 betas. I couldn't reproduce the error here on our Portal with FME(R) 2023.0.0.0 (20230216 - Build 23239 - WIN64) but the latest FME 2023 beta download should work for you (any build higher than 23231).
Note that the resolved subtype is represented as a format attribute:
arcgisonline_subtype_code 2
arcgisonline_subtype_name Service
similar to the Geodatabase reader.
If you can't get this to work perhaps log a support request with your FME provider
@Mark Stoakes I would very much like to download the 2023 beta version you referenced above so that I can test reading in "_Resolved" domain descriptions that are stored at the subtype level. However, there are no beta versions avaiable to download. Any idea when Safe will post a beta version?
@Mark Stoakes I would very much like to download the 2023 beta version you referenced above so that I can test reading in "_Resolved" domain descriptions that are stored at the subtype level. However, there are no beta versions avaiable to download. Any idea when Safe will post a beta version?
@londonhb185 FME 2023 betas will be available again shortly after 13 April.
I was wondering if a workaround would be to read the json of the feature service layer and create a lookup from there, rather than having to export the UN. Each subtype shows up in the JSON:
"id": 1,
"name": "Service Pipe",
"domains": {"tracerwire": {
"type": "codedValue",
"name": "7_Yes_No",
"description": "Valid Yes, No values",
"codedValues": d
{
"name": "Unknown",
"code": 0
},
{
"name": "Yes",
"code": 1
},
{
"name": "No",
"code": 2
}
],
"mergePolicy": "esriMPTDefaultValue",
"splitPolicy": "esriSPTDuplicate"
},
If a domain is assigned to all subtypes then it shows as inherited
"lifecyclestatus": {"type": "inherited"},
I was thinking about using the resolve domains in the feature reader and then creating the rest of the domain resolved attributes from the json... If anyone is quicker with json than I am, post the results here...
If you need to create your own lookup tables from the UN JSON, I have written a blog that shows how to do this using FME Desktop or Data Interoperability.
While waiting for full support for UN domains and subtypes reader you could use this approach.
Has there been any update for resolving the Asset Group Subtype?
I am using Workbench 2023.1 and I am running into the same issue (Asset Type resolving but Asset Group not resolving). I am reading in Utility Network data with an Esri ArcGIS Portal Feature Service Reader. Currently, I am using a look up table to get the description for that field but would prefer to not have to do that for each of table/feature class in Utility Network.
Has there been any update for resolving the Asset Group Subtype?
I am using Workbench 2023.1 and I am running into the same issue (Asset Type resolving but Asset Group not resolving). I am reading in Utility Network data with an Esri ArcGIS Portal Feature Service Reader. Currently, I am using a look up table to get the description for that field but would prefer to not have to do that for each of table/feature class in Utility Network.
Actually, I only just saw the comment to expose "arcgisonline_subtype_name" format attribute and that appeared to work so I do not need the look up table for the Asset Group subtypes anymore. Yay!
I am still having trouble getting a domain resolved that is at the subtype level. Maybe I’m doing something wrong?
FME2023.1 (build 23619)
Using the Feature Reader transformer: Portal Feature Service of my UN data, layer is PipelineLine
Looking at the attribute material:
In the schema result from the reader I see
attribute name: material
attribute name: material_resolved
But in the data result I only see
material: PL
and no material_resolved attribute that I can find.