摘要
Describe 函数将返回启用了编辑器追踪的数据集的以下属性。
可为要素类、表、镶嵌数据集或栅格目录启用编辑器追踪。只有地理数据库数据类型支持编辑器追踪属性。返回的 dataType 是要素类、表、镶嵌数据集或栅格目录的 dataType。
属性
属性 | 说明 | 数据类型 |
editorTrackingEnabled (只读) | 如果对数据集启用编辑器追踪,则为 True。 | Boolean |
creatorFieldName (只读) | 包含创建要素、行或栅格的用户名的字段名称。 | String |
createdAtFieldName (只读) | 包含创建要素、行或栅格的日期和时间的字段名称。 | String |
editorFieldName (只读) | 包含最近编辑要素、行或栅格的用户名的字段名称。 | String |
editedAtFieldName (只读) | 包含最近编辑要素、行或栅格的日期和时间的字段名称。 | String |
isTimeInUTC (只读) | 如果 CreatedAt 字段和 EditedAt 字段以 UTC(协调世界时间)存储时间,则为 True。如果以数据库时间存储时间,则为 False。 | Boolean |
代码示例
以下独立脚本显示了各位用户最近编辑的要素类中的要素数量。
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 list(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)