描述
用于在地理数据库中对要素类、表、要素数据集或关系类启用编辑者追踪。
使用方法
如果输入数据集来自企业级地理数据库,则其必须来自作为数据所有者建立的数据库连接。
如果字段不存在,此工具可添加字段。如果存在字段,它们必须是正确的数据类型。创建者字段和上一个编辑者字段必须是字符串型字段,创建日期字段和最后一次编辑日期字段必须为日期型字段。
编辑者追踪仅适用于对现有数据集的操作。它不适用于创建数据集的操作。例如,如果复制数据集以创建新的数据集,追踪值不会在新的数据集中进行更新。
可以以数据库的时区或协调世界时间 (UTC) 记录编辑日期。
如果数据的复制是要跨时区的,或需要通过要素服务进行编辑,请使用 UTC。由于编辑器可能会在世界上任何地方应用编辑,所以 UTC 比较适合,因为它确保了以一种普遍接受且一致的方式记录时间。
仅当确定将在同一时区内执行所有编辑时,才建议配置编辑者追踪以使用数据库的时区。
可在启用了编辑者追踪功能的数据集中运行此工具,但仅限于启用对附加信息的追踪。例如,如果数据集仅追踪创建者和创建日期,便可运行此工具添加编辑器的追踪和最后一次编辑日期。此工具不能对字段禁用追踪,不能将追踪从一个字段切换到另一个字段,也不能在 UTC 和数据库时间之间进行切换。如果需要执行上述任一操作,则需要在运行此工具前禁用编辑器对输入数据集的追踪。
并非所有的关系类类型都可以启用编辑器跟踪。编辑者追踪仅适用于基于表的关系类(即多对多或属性关系类)。
在 ArcGIS Pro 2.4 中,支持要素数据集作为此工具的输入。如果向要素数据集中的每个项目添加新字段,则默认情况下这些字段将命名为 created_user、created_date、last_edited_user 和 last_edited_date。如果您使用现有字段,则要素数据集中的所有项目必须已存在该字段。
语法
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 (可选) | 指定如果字段不存在是否添加字段。
| Boolean |
record_dates_in (可选) | 记录创建日期和最后一次编辑日期采取的时间格式。默认值为 UTC。
| String |
派生输出
名称 | 说明 | 数据类型 |
out_dataset | 已修改的输入数据集。 | 数据集 |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 EnableEditorTracking 工具。
import arcpy
arcpy.EnableEditorTracking_management("d:/RC.gdb/Buildings","Creator","Created","Editor","Edited","ADD_FIELDS","UTC")
以下独立脚本演示了如何在地理数据库中启用对所有要素类的编辑者追踪。
# 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')
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是