I'm assuming this is all on FME Desktop, let us know if you've got FME Server in the mix.
What happens if you modify it like this:
import arcpy
arcpy.env.workspace = r"\\cnatrtd8\geo\GEODEV011.sde"
print arcpy.Exists(r"GEO09_WEB_MERCATOR\GEO09E03_CS_STA")
Tip: you can put an "r" in front of your string literals to avoid doubling your backslashes, see https://stackoverflow.com/a/4780104
Same results, it returns True in the python shell and False in the FME Shutdown script.
I am using FME 2016 1.3.2.
I have tryed with FME 2017, and curiously that solve that problem.
However, for other reasons, I have to stay with FME 2016 1.3.2 so I am in a dead end right now...
Hi @bgeorges
I checked and can't see a specific Python fix in 2017 that was for boolean values, but I did find one for Java. If our Python scripts are just a wrapper for Java (I have no idea) that might explain the fix in 2017.
If (in that case) you read a false value as a boolean:
getAttributeBoolean("TestFalse")
It would return true! However, it returned false if you read the value as a string:
getAttributeString("TestFalse")
So that was a workaround there.
Is that anything that helps you? Besides that I can't think of any way to have something work in 2016. The best thing there would be to contact our support team (safe.com/support) and ask them to talk to the Python developers. If it's related to the issue I mentioned, it would be PR#76735 and maybe PR#69395, so you could quote those references to them for a quicker response.
Hope this helps
Mark
Just a hunch, could this maybe be related to the FME 2016 issue with PYTHONPATH and arcpy? It's kind of a long shot, but maybe worth a try:
# Fix pythonpath
import sys
sys.path.append(sys.path.pop(0))
sys.path.append(sys.path.pop(0))
# Business as usual from here
import arcpy
arcpy.env.workspace = r"\\cnatrtd8\geo\GEODEV011.sde"
print arcpy.Exists(r"GEO09_WEB_MERCATOR\GEO09E03_CS_STA")
More info here: https://knowledge.safe.com/questions/38010/arcgis-workspaces-in-fme.html
Thank you David and Mark for your replies.
Doing more tests, I think the problem might be that arcpy is having problems to connect to the Geodatabase using a .sde connection file. arcpy.Exists() return false because the connection was not made. Other arcpy functions that tries to read or write to a feature class inside the Geodatabase are not working when called from FME while they work when called from a python shell.
The authentication type of the connection file is defined to: Database authentication, and the credentials are
saved inside the .sde. I doubt that authentification is the cause of the problem here.
The Geodatabase Enterprise is using ArcGIS 10.3 and is installed on an Oracle 11g database.
Just a hunch, could this maybe be related to the FME 2016 issue with PYTHONPATH and arcpy? It's kind of a long shot, but maybe worth a try:
# Fix pythonpath
import sys
sys.path.append(sys.path.pop(0))
sys.path.append(sys.path.pop(0))
# Business as usual from here
import arcpy
arcpy.env.workspace = r"\\cnatrtd8\geo\GEODEV011.sde"
print arcpy.Exists(r"GEO09_WEB_MERCATOR\GEO09E03_CS_STA")
More info here: https://knowledge.safe.com/questions/38010/arcgis-workspaces-in-fme.html
That was the problem, thank you!