Skip to main content
Solved

FGDB Open API Reader reading invalid domain values


adieporter
Forum|alt.badge.img

Hi all,

 

We have a FGDB that contains domain values and we are using the FGDB Open API Reader to read in the data.

We have examples where a field has a modeled domain but a value is not a valid coded value. In this situation we are seeing that the value is being read into FME as an empty text string. I am guessing that FME has trying to get the description of the value, and because it does not exist it is returning an empty text string.

I'm just checking to see whether anyone else has seen this and whether this is expected behavior?

We are using FME to validate these values but by bring in a blank it does not really help. We tested using FME 2018.1 and 2020.0.

If we use the arc-object FGDB reader we can resolve the domain and see the bad value. Unfortunately using this reader is not an option due to licensing.

 

Cheers

Adie

Best answer by andreaatsafe

Hi @adieporter,

You are correct. The File Geodatabase Open API reader will resolve the domain values, this means that the descriptions are used and not the coded values. You can see more details about domains for this format in the documentation here by expanding the section "The Esri Geodatabase (File Geodb Open API) reader/writer also provide the following capabilities"

Given that the description is used to resolve domains with the Open API format, an invalid domain producing an empty text string makes sense as it does not exist in the domain table.

If you are wanting to extract the coded value to see the bad value, you would need to use the GEODATABASE_FILE format.

There is also this idea that you can vote on to add a resolve domains option to the FGDB Open API format: https://knowledge.safe.com/idea/94707/add-resolve-domains-option-to-file-geodatabase-fgd.html?

 

View original
Did this help you find an answer to your question?

6 replies

ebygomm
Influencer
Forum|alt.badge.img+31
  • Influencer
  • July 21, 2020

I see the same behaviour in FME(R) 2019.2.3.2 (20200320 - Build 19825 - WIN32) but I think it's what i would expect as the FGDB Open API Reader resolves the domains

If a field with a coded domain is coming through as blank then by definition the value is invalid, is it important to know the value if it is wrong?

It's important as well to be able to distinguish between cases where a field contains the value rather than the code

e.g. ArcView v Data

I'd be wary of using the FGDB Open API Reader for any critical validation


andreaatsafe
Safer
Forum|alt.badge.img+10
  • Safer
  • Best Answer
  • July 21, 2020

Hi @adieporter,

You are correct. The File Geodatabase Open API reader will resolve the domain values, this means that the descriptions are used and not the coded values. You can see more details about domains for this format in the documentation here by expanding the section "The Esri Geodatabase (File Geodb Open API) reader/writer also provide the following capabilities"

Given that the description is used to resolve domains with the Open API format, an invalid domain producing an empty text string makes sense as it does not exist in the domain table.

If you are wanting to extract the coded value to see the bad value, you would need to use the GEODATABASE_FILE format.

There is also this idea that you can vote on to add a resolve domains option to the FGDB Open API format: https://knowledge.safe.com/idea/94707/add-resolve-domains-option-to-file-geodatabase-fgd.html?

 


ebygomm
Influencer
Forum|alt.badge.img+31
  • Influencer
  • July 21, 2020

FME is actually the number one culprit of getting incorrect values into coded domains in my experience, you should have to pass a test before you're allowed to set this parameter to No :-)


adieporter
Forum|alt.badge.img
  • Author
  • July 21, 2020

Thanks All

That backups what we've found.

I agree with you Liz, especially as in our case we have some fields with domains on them that can be isnullable=true. So distinguishing between valid/invalid is coming down is <empty text string>/<null>.

Andrea may be useful to add to usage notes for format.

Unfortunately we cant use the GEODATABASE_FILE due to licensing restrictions.

Cheers Adrian


adieporter
Forum|alt.badge.img
  • Author
  • July 21, 2020

On a related note

 

I've noticed that we have some fields with time values stored. When the FGDB Open API Reader reads this data it appends the date 1899-12-30 to the time of, making it a timestamp. When reading the data using GEODATABASE_FILE we just get the time value.

 

Handy to know.

Adie


ebygomm
Influencer
Forum|alt.badge.img+31
  • Influencer
  • July 21, 2020
adieporter wrote:

Thanks All

That backups what we've found.

I agree with you Liz, especially as in our case we have some fields with domains on them that can be isnullable=true. So distinguishing between valid/invalid is coming down is <empty text string>/<null>.

Andrea may be useful to add to usage notes for format.

Unfortunately we cant use the GEODATABASE_FILE due to licensing restrictions.

Cheers Adrian

It's really fun when people have put the text string <Null> in a field alongside genuine null values


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings