Question

Reading nested subtype-domains with GEODATABASE_SDE reader

  • 7 September 2018
  • 4 replies
  • 64 views

Badge

Can somebody please confirm that I'm understanding this correctly:

https://knowledge.safe.com/articles/23883/working-with-geodatabase-subtypes.html

Limitations

At the time of writing, FME will not allow you to associate different domains based on a particular subtype. For instance, you would not be able to set range domains of 0-50,000; 50,000-100,000; 100,000-250,000 and apply them to a subtype definition containing the values of Small, Medium, and Large. In order to achieve this, you would need to create the domain:subtype relationship in ArcGIS.

In our database (ArcSDE 10.3.1 w/ Oracle 12c) we have a feature class which has a subtype field and within each subtype there is defined a different domain for a "subclass" field. I want to be able to resolve the subtypes and domains (both in and out of the subtypes) but the above paragraph makes me think this is not possible for domains defined within a subtype. I have had no success in my testing as of yet - only coded values are coming through despite domains outside of a subtype being correctly resolved.

Can anybody confirm this?

If this is the case then I suppose a workaround might be to use TestFilters and AttributeValueMappers to bring the LUTs into FME land or alternatively maybe I can read the domains off the SDE schema (in case they change on me)...

Any and all input appreciated.

Thanks!

ATTACHED: sample data (file geodatabase) ->


4 replies

Badge +2

@jess If you could attach a small geodb with the example domains, we can take a look at why FME might not be resolving the "subclass".

If you have to create a lookup you could try this FME Hub transformer. An alternative, if you need to extract domains/subtypes from a Geodatabase to create a lookup table, is to use the FME XML reader to read the Esri XML Workspace document (Schema Only) and extract the information you need.

Badge

@jess If you could attach a small geodb with the example domains, we can take a look at why FME might not be resolving the "subclass".

If you have to create a lookup you could try this FME Hub transformer. An alternative, if you need to extract domains/subtypes from a Geodatabase to create a lookup table, is to use the FME XML reader to read the Esri XML Workspace document (Schema Only) and extract the information you need.

Yes I will share a geodb later today - we're just sanitizing the data. Thanks.

 

Badge
Yes I will share a geodb later today - we're just sanitizing the data. Thanks.

 

Hello - a small point of clarification: Here I'm trying to resolve subtypes and domains without knowing the domain codes/values beforehand. Using FME Server I hope to schedule a workbench that will extract all fields in the table from ArcSDE "as-is", resolve any coded values (both subtypes and domains), and write it out somewhere else.

 

 

Any questions please don't hesitate to ask!

 

 

Cheers,

 

~jess~

 

 

Yes I will share a geodb later today - we're just sanitizing the data. Thanks.

 

This has been a shortcoming of the GEODATABASE_SDE reader for an eternity (15+ years?). When the source feature class has a subtype, the domains associated with each subtype are not resolved despite setting the "Resolve Subtypes" and "Resolve Domains" parameters to Yes. My organisation have had to maintain separate database tables as lookup tables for the subtype domain values so that this information can be joined to the data using the DatabaseJoiner. This means we need to maintain codelist information in two separate places which is not ideal, and it makes the workbench more complex than it needs to be. It would be great if Safe and/or Esri could fix this so a work-around is no longer required.

Reply