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

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