Skip to main content
Hi, I have runned into some strange behaviour with FME Desktop and ArcGIS.

 

 

My ArcGIS licences are 1 ArcInfo, 15 ArcEditor and 15 ArcView hosted on a license server.

 

 

Under Citrix I set the variable ESRI_SOFTWARE_CLASS=Viewer as a default environment variable. This works fine, and for example a "double-click" on a MXD icon will launch ArcView. Given this as the default behaviour I provide users with separate startup icons for ArcEditor and ArcInfo (ESRI_SOFTWARE_CLASS=Editor or Professional respectively).

 

 

But, when I launch FME and start an ETL-workflow which requires an ArcGIS license, then FME try to launch ArcInfo. Seems like ESRI_SOFTWARE_CLASS=Viewer (i.e ArcView) is not honoured by FME.

 

 

The same seems to be the case for local installs. FME honours license settings from the ArcGIS Administrator and not what i set by ESRI_SOFTWARE_CLASS.

 

 

Anyone knows a way to force a specific ArcGIS licensetype to be used by FME?

 

 

best

 

Pål Herman

 

Oslo, Norway

 

 

Hi Pal - I'm not sure on exactly the issue but as you are using an older version of FME around the time some changes happened with the shipping of DLLs with FME and also given that there are always challenges getting your FME and ESRI versions compatible with each other take a look here http://fmepedia.safe.com/articles/Samples_and_Demos/Notes-on-FME-and-ESRI-Versions-and-Compatibility to make sure your versioning at least ties up to begin with. It might give you a way forward at least...    
Thanks Dave, many thanks for the effort and the link which I had missed. Looking at the info for version compability:

 

ArcGIS 10.0 and FME2010 SP2 or higher, including FME2011 and FME2012 - Thats exactly my setup (Which is FME2011SP4 and ArcGIS10.0 SP5.

 

Norwegian ESRI distributor find the same problem, I guess they run ArcGIS10.1 and FME2012 (maybe 2013). 

 

 

Thanks again, cheers Pål
Hi Pål ,

 

 

You can force FME to use a certain Esri edition using a python Startup Script.  The script below should set the correct license level as specified by your ESRI_SOFTWARE_CLASS variable:

 

 

import sys,os

 

try:

 

    SWClass=os.environ='ESRI_SOFTWARE_CLASS']

 

    print("Environment variable ESRI_SOFTWARE_CLASS has value: "+SWClass)

 

    if SWClass=="Viewer":

 

        import arcview

 

    elif SWClass=="Editor":

 

        import arceditor

 

    elif SWClass=="Professional":

 

        import arcinfo

 

    else:

 

        print("Invalid value found for environment variable ESRI_SOFTWARE_CLASS")

 

        print("Try changing to \\"Viewer\\", \\"Editor\\", or \\"Professional\\"")

 

 

    import arcpy

 

    print("Esri Edition set to "+ arcpy.ProductInfo())

 

        

 

except:

 

    print("Environment variable ESRI_SOFTWARE_CLASS is not set")

Reply