Editor Tracking properties (arcpy)
Summary
The Describe function returns the following properties for datasets that have Editor Tracking enabled.
Editor Tracking can be enabled for a FeatureClass, Table, Mosaic Dataset, or Raster Catalog. The dataType returned is the dataType of the Feature Class, Table, Mosaic Dataset, or Raster Catalog.
Properties
Property | Explanation | Data Type |
editorTrackingEnabled (Read Only) |
True if editor tracking is enabled for the dataset. | Boolean |
creatorFieldName (Read Only) | The name of the field that contains the user name of the person who created a feature, row, or raster. | String |
createdAtFieldName (Read Only) | The name of the field that contains the date and time a feature, row, or raster was created. | String |
editorFieldName (Read Only) | The name of the field that contains the user name of the person who most recently edited a feature, row, or raster. | String |
editedAtFieldName (Read Only) |
The name of the field that contains the date and time a feature, row, or raster was most recently edited. | String |
isTimeInUTC (Read Only) |
True if times stored in the CreatedAt field and EditedAt field are stored in UTC (Coordinated Universal Time). False if they are stored in database time. | Boolean |
Code Sample
The following stand-alone script displays how many features in a feature class were most recently edited by each user.
import arcpy
# Create a Describe object from the feature class
#
gdb_fc = "C:/data/ParcelBase.gdb/parcels_enabled"
desc = arcpy.Describe(gdb_fc)
# If the feature class has editor tracking enabled, then
# list how many features were last edited by each user.
#
if desc.editorTrackingEnabled:
#
# Get the editorFieldName from the describe object
whoField = desc.editorFieldName
#
# Use a cursor to search through all the features
userDictionary = {}
cur = arcpy.da.SearchCursor(gdb_fc, [whoField])
for row in cur:
featureEditedBy = row[0]
if featureEditedBy in userDictionary:
userDictionary[featureEditedBy] += 1
else:
userDictionary[featureEditedBy] = 1
#
# Print the results
for user in userDictionary.keys():
if user == None:
print 'Last edited before editor tracking was enabled: '+ \
str(userDictionary[user])
else:
print "Last edited by " + user + ": " + str(userDictionary[user])
else:
print 'Editor tracking not enabled for '+gdb_fc