Свойства отслеживания редактирования

Краткая информация

Функция 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)