CÓMO

Conservar los Id. globales al incorporar entidades de una geodatabase de archivos a una capa de entidades alojada en ArcGIS Online

Last Published: September 30, 2024

Resumen

A veces, el campo Id. global no se conserva al incorporar entidades de una geodatabase de archivos a una capa de entidades alojada en ArcGIS Online. Conservar los Id. globales es crucial, ya que identifican de forma única cada entidad y se utilizan a menudo para realizar un seguimiento de las relaciones, sincronizar datos y administrar el historial de edición, especialmente en flujos de trabajo y servicios de entidades sin conexión.

En este artículo se proporciona un flujo de trabajo para incorporar una geodatabase de archivos a una capa de entidades alojada en ArcGIS Online mediante una secuencia de comandos de Python que se ejecuta en la ventana de Python en ArcGIS Pro.

Procedimiento

  1. Abra el proyecto en ArcGIS Pro.
  2. Abra la ventana de Python. Consulte ArcGIS Pro: ventana de Python para obtener más información.
Note:
To preserve GlobalIDs and avoid the automatic creation of new GlobalIDs, ensure the GlobalID field is already present in the hosted feature layer.
  1. Ejecute el siguiente script:
    1. Defina rutas a la geodatabase de archivos de entrada y a la capa de entidades alojada de destino.
import arcpy 

file_gdb_path = r"<file_geodatabase_path>"
hosted_feature_layer = r"<hosted_feature_layer_URL>"
    1. Cree un objeto FieldMappings. Este objeto define cómo se asignan los campos del origen (geodatabase de archivos) al destino (capa de entidades alojada).
field_mappings = arcpy.FieldMappings()
    1. Cree un objeto FieldMap para el campo Id. global y establezca las propiedades del campo de salida para el campo GlobalID.
global_id_field_map = arcpy.FieldMap()
global_id_field_map.addInputField(file_gdb_path, "GlobalID")
global_id_field_map.outputField.name = "GlobalID"
    1. Agregue el mapa de campo correspondiente al Id. global al objeto FieldMappings.
field_mappings.addFieldMap(global_id_field_map)
    1. Agregue mapas de campo para otros campos si es necesario. Reemplace <field_name> por el nombre del campo que se va a asignar.
field1_field_map = arcpy.FieldMap()
field1_field_map.addInputField(file_gdb_path, "<field_name>")
field1_field_map.outputField.name = "<field_name>"
field_mappings.addFieldMap(field1_field_map)
    1. Incorpore las entidades a la capa de entidades alojada.
arcpy.Append_management(file_gdb_path, hosted_feature_layer, schema_type="NO_TEST", field_mapping=field_mappings)

El siguiente bloque de código muestra el script completo.

import arcpy

file_gdb_path = r"C:\Users\dpalzaniappan\Documents\ArcGIS\Projects\MyProject91\MyProject91.gdb\Testi"
hosted_feature_layer = r"https://services9.arcgis.com/LMjydzYxR6YFiqk8/arcgis/rest/services/Testio123/FeatureServer/0"

field_mappings = arcpy.FieldMappings()

global_id_field_map = arcpy.FieldMap()
global_id_field_map.addInputField(file_gdb_path, "GlobalID")
global_id_field_map.outputField.name = "GlobalID"

field_mappings.addFieldMap(global_id_field_map)

field1_field_map = arcpy.FieldMap()
field1_field_map.addInputField(file_gdb_path, "Name")
field1_field_map.outputField.name = "Name"
field_mappings.addFieldMap(field1_field_map)

arcpy.Append_management(file_gdb_path, hosted_feature_layer, schema_type="NO_TEST", field_mapping=field_mappings)

La siguiente imagen muestra la secuencia de comandos de Python utilizada en la ventana de Python en ArcGIS Pro para incorporar la geodatabase de archivos a la capa de entidades alojada.

Secuencia de comandos de Python en la ventana de Python

Id. de artículo: 000032358

Obtenga soporte con IA

Resuelva su problema rápidamente con el chatbot de inteligencia artificial de soporte de Esri.

Empieza a chatear ahora

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Empieza a chatear ahora

Ir a opciones de descarga