ERROR

Laufzeitfehler: Das Element<item_name>bereits vorhanden

Last Published: May 28, 2020

Fehlermeldung

Es ist möglich, mit der Methode overwrite() in ArcGIS API for Python einen vorhandenen gehosteten Feature-Layer zu überschreiben, wie im folgenden Beispiel dargestellt:

from arcgis.gis import GIS from IPython.display import display gis = GIS("https://python.playground.esri.com/portal", "username", "password", verify_cert=False) item = gis.content.search("feature_name", "Feature Layer") service_flayer_collection = FeatureLayerCollection.fromitem(item) service_flayer_collection.manager.overwrite(r'[folder_location]/TEST.zip')

In einigen Fällen wird jedoch die folgende Fehlermeldung zurückgegeben:

Error: Laufzeitfehler: Das Element <Elementname> ist bereits vorhanden.

Ursache

Dieser Fehler kann auftreten, wenn dem veröffentlichten Layer ein Ansichts-Layer zugeordnet ist. Weitere Informationen finden Sie unter Portal for ArcGIS: Erstellen von Sichten gehosteter Feature-Layer.Wenn mit der Funktion gis.content.search() nach dem Feature-Layer-Namen gesucht wird, wird mehr als ein Ergebnis zurückgegeben: Der Feature-Layer und der Ansichts-Layer. Um auf vorhandene zugehörige Ansichts-Layer zu prüfen, können die Parameter für die Funktion gis.content.search() im Skript aufgerufen werden, wie im folgenden Beispiel dargestellt:

item = gis.content.search("featurename", "Feature Layer") item

Dieser Code gibt alle verfügbaren Elemente mit dem angegebenen Namen zurück. Das folgende Skript zeigt ein Beispiel für das Ergebnis:

[<Item title:"featurename_1" type:Feature Layer Collection owner:User_1>, <Item title:"featurename" type:Feature Layer Collection owner:User_1>]

Lösung oder Problemumgehung

Um dem Problem der Funktion gis.content.search() zu begegnen, kann der Funktion ein Index oder Array hinzugefügt werden. Da im Suchergebnis zuerst Ansichts-Layer aufgelistet sind, muss für die Suche der Index "1" eingefügt werden, damit der richtige gehostete Feature-Layer, der überschrieben werden soll, ausgewählt wird. Im folgenden Codebeispiel wird dies veranschaulicht:

from arcgis.gis import GIS from IPython.display import display gis = GIS("https://python.playground.esri.com/portal", "username", "password", verify_cert=False) #For using index array method item = gis.content.search("feature_name", "Feature Layer")[1] //Setting the index for the search function service_flayer_collection = FeatureLayerCollection.fromitem(item) service_flayer_collection.manager.overwrite(r'[folder_location]/TEST.zip')

Eine andere Alternative besteht darin, die Methode gis.content.search() zum Suchen nach der Element-ID des gewünschten Features zu verwenden. Die Element-ID eines Features befindet sich in der Adressleiste eines Browsers, wenn das Feature in ArcGIS Online geöffnet wird, wie in der folgenden Abbildung dargestellt:

Abbildung einer Adressleiste eines geöffneten gehosteten Feature-Layers

Ändern Sie dazu das Skript wie folgt:

#For searching using item ID item = gis.content.search("item_id")

Artikel-ID:000019281

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln