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