I am trying to create an attribute index in a feature class in FME 2011. I couldn't find any trasnformer that does it. So I'm thinking may be I can use "PythonCaller" transformer to call "Add Attribute Index" geoprocessing method from ArcGIS. Is it possible?
Here's the syntax I copied from ArcGIS Help menu:
arcpy.AddIndex_management ("counties.shp", "NAME;STATE_FIPS;CNTY_FIPS", "#", "NON_UNIQUE", "NON_ASCENDING")
Thank you in advance.
Sam
Thank you Mark and blah238. So, I intalled FME2012 on my machine and used python26.dll as my custon python interpreter and copied Mark's code. For Entry point, I entered the name of the class "MyIndexingScript". I'm getting the following error:
Python Exception : Object: Error in executing tool Error encountered while calling method `input' PythonFactory failed to process feature
import fmeobjects
import arcpy
class MyIndexingScript(object):
def __init__(self):
self.featureList = []
def input(self,feature):
self.featureList.append(feature)
arcpy.AddIndex_management (self, "YORK_PARCEL_ID;PARCEL_GIS_ID", "PIndex", "UNIQUE", "ASCENDING")
def close(self):
self.pyoutput(feature)
selfdirectly, as you are, in thearcpy.AddIndex_managementcall. Instead you will want to either hard-code the feature class path or read in an attribute or parameter to use there. So something likefc = self.getAttribute('FC_PATH')and then referencefcinstead ofselfin the AddIndex call. See the PythonCaller help for more details. – blah238 May 11 '12 at 5:34