Краткая информация
Функция Describe возвращает следующие свойства наборов данных с включенным отслеживанием редактирования.
Отслеживание редактирования может поддерживаться в группах свойств Класс пространственных объектов, Таблица, Набор данных мозаики или Каталог растров. Свойства отслеживания редактирования поддерживаются только типами данных базы геоданных. Возвращаемое dataType является dataType класса пространственных объектов, таблицы, набора данных мозаики или каталога растров.
Свойства
Свойство | Описание | Тип данных |
editorTrackingEnabled (только чтение) | True, если отслеживание изменений в наборе данных включено. | Boolean |
creatorFieldName (только чтение) | Имя поля, которое содержит имя пользователя, создавшего объект, строку или растр. | String |
createdAtFieldName (только чтение) | Имя поля, которое содержит дату и время создания объекта, строки или растра. | String |
editorFieldName (только чтение) | Имя поля, которое содержит имя последнего пользователя, редактировавшего объект, строку или растр. | String |
editedAtFieldName (только чтение) | Имя поля, которое содержит дату и время последнего редактирования объекта, строки или растра. | String |
isTimeInUTC (только чтение) | True, если время в полях CreatedAt и EditedAt хранится в UTC (Всемирное координированное время). 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)