HOW TO

Beibehalten von Global-IDs beim Anhängen von Features aus einer File-Geodatabase an einen gehosteten Feature-Layer in ArcGIS Online

Last Published: September 30, 2024

Zusammenfassung

In manchen Fällen wird das Global ID-Feld beim Anhängen von Features aus einer File-Geodatabase an einen gehosteten Feature-Layer in ArcGIS Online nicht beibehalten. Das Beibehalten globaler IDs ist entscheidend, da sie jedes Feature eindeutig identifizieren und häufig zur Verfolgung von Beziehungen, zur Synchronisierung von Daten und zur Verwaltung des Bearbeitungsverlaufs verwendet werden, insbesondere in Offline-Workflows und Feature-Services.

In diesem Artikel wird ein Workflow zum Anfügen einer File-Geodatabase an einen gehosteten Feature-Layer in ArcGIS Online mithilfe eines Python-Skripts beschrieben, das im Python-Fenster in ArcGIS Pro ausgeführt wird.

Vorgehensweise

  1. Öffnen Sie das Projekt in ArcGIS Pro.
  2. Öffnen des Python-Fensters Weitere Informationen finden Sie unter ArcGIS Pro: Python-Fenster.
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. Führen Sie das folgende Skript aus:
    1. Definieren Sie Pfade zur Eingabe-File-Geodatabase und zum gehosteten Ziel-Feature-Layer.
import arcpy 

file_gdb_path = r"<file_geodatabase_path>"
hosted_feature_layer = r"<hosted_feature_layer_URL>"
    1. Erstellen Sie ein FieldMappings-Objekt. Dieses Objekt definiert, wie die Felder aus der Quelle (File-Geodatabase) dem Ziel (gehosteter Feature-Layer) zugeordnet werden.
field_mappings = arcpy.FieldMappings()
    1. Erstellen Sie ein FieldMap-Objekt für das Global-ID-Feld, und legen Sie die Eigenschaften des Ausgabefelds für das Feld "GlobalID" fest.
global_id_field_map = arcpy.FieldMap()
global_id_field_map.addInputField(file_gdb_path, "GlobalID")
global_id_field_map.outputField.name = "GlobalID"
    1. Fügen Sie dem FieldMappings-Objekt die Feldzuordnung für die Global-ID hinzu.
field_mappings.addFieldMap(global_id_field_map)
    1. Fügen Sie bei Bedarf Feldzuordnungen für andere Felder hinzu. Ersetzen Sie "<field_name>" durch den Namen des Feldes, das zugeordnet werden soll.
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. Hängen Sie die Features an den gehosteten Feature-Layer an.
arcpy.Append_management(file_gdb_path, hosted_feature_layer, schema_type="NO_TEST", field_mapping=field_mappings)

Mit dem folgenden Code-Block wird das voll funktionsfähige Skript demonstriert.

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)

Die folgende Abbildung zeigt das Python-Skript, das im Python-Fenster in ArcGIS Pro zum Anhängen der File-Geodatabase an den gehosteten Feature-Layer verwendet wird.

Das Python-Skript im Python-Fenster

Artikel-ID: 000032358

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln