启用编辑者追踪 (数据管理)

摘要

用于在地理数据库中对要素类、表、要素数据集或关系类启用编辑者追踪。

使用情况

  • 如果输入数据集来自企业级地理数据库,则其必须来自作为数据所有者建立的数据库连接。

  • 如果字段不存在,此工具可添加字段。 如果存在字段,它们必须是正确的数据类型。 为创建者字段上次编辑者字段参数指定的值必须是字符串字段,为创建日期字段上次编辑日期字段参数指定的值必须是日期字段。

  • 编辑者追踪仅适用于对现有数据集的操作。 它不适用于创建数据集的操作。 例如,如果复制数据集以创建新的数据集,追踪值不会在新的数据集中进行更新。

  • 您可以在数据库所在的时区或协调世界时间 (UTC) 中记录编辑日期。

    如果数据的复制是要跨时区的,或需要通过要素服务进行编辑,请使用 UTC。 由于编辑者可能会在世界上任何地方应用编辑,所以 UTC 比较适合,因为它确保了以一种普遍接受且一致的方式记录时间。

    仅当您确定所有编辑都将在该时区中执行时,才建议将编辑者跟踪配置为使用数据库所在的时区。

  • 可在启用了编辑者追踪功能的数据集中运行此工具,但仅限于启用对附加信息的追踪。 例如,如果数据集仅追踪创建者和创建日期,便可运行此工具添加编辑者的追踪和最后一次编辑日期。 此工具不能对字段禁用追踪,不能将追踪从一个字段切换到另一个字段,也不能在 UTC 和数据库时区之间进行切换。 如果要执行上述任一操作,则需要在运行此工具前禁用编辑者对数据集的追踪。

  • 并非所有的关系类类型都可以启用编辑者跟踪。 编辑者追踪仅适用于基于表的关系类(即多对多或属性关系类)。

  • 如果对具有附件的要素类启用了编辑者追踪,则附件表上也将启用编辑者追踪。 如果添加新字段,这些字段也将添加到附件表中。 如果您重复使用现有字段,并且这些字段不包含在附件表中,则将添加它们。

  • ArcGIS Pro 2.4 中,支持要素数据集作为此工具的输入。 如果向要素数据集中的每个项目添加新字段,默认情况下这些字段将命名为 created_usercreated_datelast_edited_userlast_edited_date。 如果您使用现有字段,则要素数据集中的所有项目必须已存在该字段。

参数

标注说明数据类型
输入数据集

要启用编辑者追踪的要素类、表、要素数据集或关系类。

Dataset; Topology; Network Dataset
创建者字段
(可选)

字段的名称,该字段将存储创建要素或记录的用户的名称。 如果此字段已存在,它必须为字符串型的字段。

String
创建日期字段
(可选)

字段的名称,该字段将存储创建要素或记录的日期。 如果此字段已存在,它必须为日期型的字段。

String
上一个编辑者字段
(可选)

字段的名称,该字段将存储上次编辑要素或记录的用户的名称。 如果此字段已存在,它必须为字符串型的字段。

String
上次编辑日期字段
(可选)

字段的名称,该字段将存储上次编辑要素或记录的日期。 如果此字段已存在,它必须为日期型的字段。

String
添加字段
(可选)

指定如果字段不存在是否添加字段。

  • 未选中 - 不添加字段。 指定的字段必须在输入数据集参数值中已存在。 这是默认设置。
  • 选中 - 如果字段不存在,则添加字段。 您必须指定要在以下参数中添加的字段名称:创建者字段创建日期字段上一个编辑者字段最后一次编辑日期字段
Boolean
记录日期采用
(可选)

指定记录创建日期和最后一次编辑日期采取的时间格式。

  • UTC(协调世界时间)日期将以 UTC 进行记录。 这是默认设置。
  • 数据库的时区日期将以数据库所在的时区进行记录。
String

派生输出

标注说明数据类型
修改的输入数据集

已修改的输入数据集。

Dataset

arcpy.management.EnableEditorTracking(in_dataset, {creator_field}, {creation_date_field}, {last_editor_field}, {last_edit_date_field}, {add_fields}, {record_dates_in})
名称说明数据类型
in_dataset

要启用编辑者追踪的要素类、表、要素数据集或关系类。

Dataset; Topology; Network Dataset
creator_field
(可选)

字段的名称,该字段将存储创建要素或记录的用户的名称。 如果此字段已存在,它必须为字符串型的字段。

String
creation_date_field
(可选)

字段的名称,该字段将存储创建要素或记录的日期。 如果此字段已存在,它必须为日期型的字段。

String
last_editor_field
(可选)

字段的名称,该字段将存储上次编辑要素或记录的用户的名称。 如果此字段已存在,它必须为字符串型的字段。

String
last_edit_date_field
(可选)

字段的名称,该字段将存储上次编辑要素或记录的日期。 如果此字段已存在,它必须为日期型的字段。

String
add_fields
(可选)

指定如果字段不存在是否添加字段。

  • NO_ADD_FIELDS不添加字段。 指定的字段必须在 in_dataset 参数值中已存在。 这是默认设置。
  • ADD_FIELDS如果字段不存在,则添加字段。 您必须指定要在以下参数中添加的字段名称:creator_fieldcreation_date_fieldlast_editor_fieldlast_edit_date_field
Boolean
record_dates_in
(可选)

指定记录创建日期和最后一次编辑日期采取的时间格式。

  • UTC日期将以 UTC 进行记录。 这是默认设置。
  • DATABASE_TIME日期将以数据库所在的时区进行记录。
String

派生输出

名称说明数据类型
out_dataset

已修改的输入数据集。

Dataset

代码示例

EnableEditorTracking 示例(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 EnableEditorTracking 函数。

import arcpy
arcpy.EnableEditorTracking_management("d:/RC.gdb/Buildings","Creator","Created","Editor","Edited","ADD_FIELDS","UTC")
EnableEditorTracking 示例 2(独立脚本)

以下独立脚本演示了如何在地理数据库中启用对所有要素类的编辑者追踪。

# Name: EnableEditorTracking_Ex02.py
# Description: Enables editor tracking for all datasets in a geodatabase

# Import system modules
import arcpy
import os

# Set the workspace
workspace = arcpy.GetParameterAsText(0)

# Set the workspace environment
arcpy.env.workspace = "d:/test/data.gdb"

# Get all the stand alone tables and feature classes
dataList = arcpy.ListTables() + arcpy.ListFeatureClasses()

# For feature datasets get all of the featureclasses
# from the list and add them to the master list
for dataset in arcpy.ListDatasets("", "Feature"):
    arcpy.env.workspace = os.path.join(workspace,dataset)
    dataList += arcpy.ListFeatureClasses()

# Execute enable editor tracking
for dataset in dataList:
    print('Enabling tracking on ' + dataset)
    arcpy.EnableEditorTracking_management(dataset, "ET_CREATOR",
        "ET_CREATED", "ET_EDITOR", "ET_EDITED", "ADD_FIELDS", "UTC")
print('Enabling complete')

环境

此工具不使用任何地理处理环境。