Deutsch
Continue in the app
Be The First To Get Support Updates
Want to know about the latest technical content and software updates?

How To: Kopieren von Inhalt aus dem Operations Dashboard eines Portal for ArcGIS- oder ArcGIS Online-Kontos in ein anderes mit der ArcGIS API for Python

Zusammenfassung

Es kommt häufig vor, dass eine Organisation über mehrere Portal for ArcGIS- oder ArcGIS Online-Konten für verschiedene Zwecke verfügt. Beispielsweise könnte eine Organisation zwei Konten benötigen, von denen das eine für die interne Verwendung und das andere für den öffentlichen Zugriff bestimmt ist. In bestimmten Fällen muss der Inhalt von einem Konto in das andere kopiert werden. Die Schritte zum Kopieren von Elementen aus Portal for ArcGIS oder ArcGIS Online finden Sie unter Portal for ArcGIS: Beispiel: Inhalt kopieren. Es ist auch möglich, Inhalt aus Operations Dashboards mithilfe der ArcGIS API for Python zu kopieren.

Vorgehensweise

Führen Sie die folgenden Schritte aus, um Inhalt aus dem Operations Dashboard eines Portal for ArcGIS- oder ArcGIS Online-Kontos in ein anderes zu kopieren:

  1. Importieren Sie die erforderlichen Module.
from arcgis.gis import GIS
from IPython.display import display
from getpass import getpass
  1. Deklarieren Sie Eingabeparameter für den Empfang der Quell-URL und der Anmeldeinformationen.
source_portal = input("Enter Source Portal : ")
if source_portal == "":
source_portal = "arcgis.com"

source_admin = input("Enter Source Admin Username: ")
source_admin_password = getpass("Enter password: ")
source_owner = input("Enter Source Owner Username: ")
Hinweis:
Geben Sie im Konsolenfenster die URL von Portal for ArcGIS als source_admin für Portal for ArcGIS an, oder lassen Sie die URL leer, und drücken Sie die Eingabetaste, um ArcGIS Online anzugeben.
  1. Deklarieren Sie Eingabeparameter für den Empfang der Ziel-URL und der Anmeldeinformationen.
target_portal = input("Enter Target Portal : ")
if target_portal == "":
target_portal = "arcgis.com"

target_admin = input("Enter Target Admin Username: ")
target_admin_password = getpass("Enter password: ")
target_owner = input("Enter Target Owner Username: ")
  1. Erstellen Sie eine Verbindung zur Quell- und Ziel-URL.
source = GIS("https://" + source_portal, source_admin, source_admin_password, verify_cert=False)
target = GIS("https://" + target_portal, target_admin, target_admin_password, verify_cert=False)
print("Connected to Source and Target Portals")
Hinweis:
Mit dem obigen Skript wird nicht auf ein Zertifikat geprüft. Wenn ein Zertifikat verfügbar ist und SSL vollständig konfiguriert ist, kann das Codesegment verify_cert auf "True" festgelegt werden: verify_cert=True.
  1. Suchen Sie nach den in Schritt 2 und 3 angegebenen Besitzern.
source_user = source.users.search(source_owner)
target_user = target.users.search(target_owner)
print("Source User: \t:\t" + source_user[0].username + "\t:\t" + source_user[0].role)
print("Target User: \t:\t" + target_user[0].username + "\t:\t" + target_user[0].role)
  1. Suchen Sie nach allen verfügbaren Dashboards unter dem angegeben Besitzer in der Quell-URL.
search_result = source.content.search(query="owner:"+str(source_owner), item_type="Dashboard")
search_result
  1. Durchlaufen Sie den Prozess "create copy to a folder" für jedes in der Ziel-URL gefundene Dashboard.
for item in search_result:
app=source.content.get(item.id)
data = [app]
target.content.clone_items(data, "dashboards", copy_data=True, search_existing_items=False)
print("copied item successfully: %s" %(app.title))

print("Done")
Das folgende Skript zeigt, wie der vollständige Code nach Abschluss der Schritte aussieht:
    from arcgis.gis import GIS
    from IPython.display import display
    from getpass import getpass
    
    source_portal = input("Enter Source Portal (machine.domain.com/webadaptor...leave blank for ArcGIS Online)")
    if source_portal == "":
    source_portal = "arcgis.com"
    source_admin = input("Enter Source Admin Username: ")
    source_admin_password = getpass("Enter password: ")
    source_owner = input("Enter Source Owner Username: ")
    
    target_portal = input("Enter Target Portal (machine.domain.com/webadaptor...leave blank for ArcGIS Online)")
    if target_portal == "":
    target_portal = "arcgis.com"
    target_admin = input("Enter Target Admin Username: ")
    target_admin_password = getpass("Enter password: ")
    target_owner = input("Enter Target Owner Username: ")
    
    source = GIS("https://" + source_portal, source_admin, source_admin_password, verify_cert=False)
    target = GIS("https://" + target_portal, target_admin, target_admin_password, verify_cert=False)
    print("Connected to Source and Target Portals")
    
    source_user = source.users.search(source_owner)
    target_user = target.users.search(target_owner)
    print("Source User: \t:\t" + source_user[0].username + "\t:\t" + source_user[0].role)
    print("Target User: \t:\t" + target_user[0].username + "\t:\t" + target_user[0].role)
    
    search_result = source.content.search(query="owner:"+str(source_owner), item_type="Dashboard")
    search_result
    
    for item in search_result:
    app=source.content.get(item.id)
    data = [app]
    target.content.clone_items(data, "dashboards", copy_data=True, search_existing_items=False)
    print("copied item successfully: %s" %(app.title))
    
    print("Done")

    Referenzinformationen

    Zuletzt geändert: 3/12/2019

    Artikel-ID: 000018924

    Software: ArcGIS API for Python 1.6