HOW TO

Suchen von Abhängigkeiten in Portal for ArcGIS mithilfe von ArcGIS API for Python

Last Published: July 28, 2021

Zusammenfassung

In einigen Fällen müssen die Abhängigkeiten zwischen Portal for ArcGIS-Elementen bestimmt werden. Beispielsweise ist es möglich, dass bei einer Datenbereinigung eine Web-App und die damit verknüpfte Webkarte gelöscht werden müssen. Das manuelle Überprüfen dieser Abhängigkeiten kann mühsam sein. Alternativ kann dieser Prozess programmgesteuert mit der Administratorberechtigung und den folgenden ArcGIS API for Python-Funktionen ausgeführt werden: dependent_upon() und dependent_to().

Vorgehensweise

Mit den folgenden Schritten wird beschrieben, wie Abhängigkeiten in Portal for ArcGIS mithilfe von ArcGIS API for Python gesucht werden.

  1. Importieren Sie die erforderlichen Module.
from arcgis.gis import GIS from IPython.display import display
  1. Geben Sie die Quell-URL und die Anmeldeinformationen für Portal for ArcGIS an.
source = GIS("<portalurl>", "<admin_user>", "<admin_password>") source_users = source.users.search(query=None, sort_field='username', sort_order='asc', max_users=100, outside_org=False, exclude_system=True) source_items_by_id = {} print('User list: Role')
  1. Erstellen Sie eine Schleife, um nach allen Benutzernamen im Portal zu suchen.
for user in source_users: print(user.username + "\t:\t" + str(user.role))
  1. Erstellen Sie eine Schleife, um die Element-IDs in den verfügbaren Ordnern zu erfassen.
for user in source_users: num_items = 0 num_folders = 0 print("Collecting item ids for {}".format(user.username), end="\n\n") user_content = user.items()
  1. Rufen Sie in derselben Schleife die Element-IDs aus dem Stammordner ab, und prüfen Sie auf Abhängigkeiten.
for item in user_content: num_items += 1 source_items_by_id[item.itemid] = item print("\n\n Item: \t {2} \t\t\t id {0} is dependent on these items: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t This item is also a dependency of these items: {}".format(item.dependent_to()))
  1. Rufen Sie in derselben Schleife die Element-IDs aus den Unterordnern ab, und prüfen Sie auf Abhängigkeiten.
folders = user.folders for folder in folders: num_folders += 1 folder_items = user.items(folder=folder['title']) for item in folder_items: num_items += 1 source_items_by_id[item.itemid] = item print("\n\n Item: \t {2} \t\t\t id {0} is dependent on these items: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t This item is also a dependency of these items: {}".format(item.dependent_to())) print("Number of folders {} # Number of items {} # Number of users {}".format(str(num_folders), str(num_items), len(source_users)))

Nachfolgend finden Sie das vollständige Skript:

from arcgis.gis import GIS from IPython.display import display source = GIS("https://test.domain.com/portal", "portaladmin", "portaladmin") source_users = source.users.search(query=None, sort_field='username', sort_order='asc', max_users=100, outside_org=False, exclude_system=True) source_items_by_id = {} print('User list: Role') for user in source_users: print(user.username + "\t:\t" + str(user.role)) for user in source_users: num_items = 0 num_folders = 0 print("Collecting item ids for {}".format(user.username), end="\n\n") user_content = user.items() for item in user_content: num_items += 1 source_items_by_id[item.itemid] = item print("\n\n Item: \t {2} \t\t\t id {0} is dependent on these items: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t This item is also a dependency of these items: {}".format(item.dependent_to())) folders = user.folders for folder in folders: num_folders += 1 folder_items = user.items(folder=folder['title']) for item in folder_items: num_items += 1 source_items_by_id[item.itemid] = item print("\n\n Item: \t {2} \t\t\t id {0} is dependent on these items: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t This item is also a dependency of these items: {}".format(item.dependent_to())) print("Number of folders {} # Number of items {} # Number of users {}".format(str(num_folders), str(num_items), len(source_users)))

Artikel-ID:000021183

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden