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

Сводка

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