Skip to main content

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

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

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