CÓMO

Encontrar dependencias en Portal for ArcGIS utilizando ArcGIS API for Python

Last Published: July 28, 2021

Resumen

En algunos casos, es necesario determinar las dependencias entre los elementos de Portal for ArcGIS. Por ejemplo, en la limpieza de datos, es posible que sea necesario eliminar una aplicación web y su mapa web asociado. Comprobar manualmente estas dependencias puede ser tedioso. Como alternativa, este proceso puede realizarse mediante programación con el privilegio de Administrador utilizando las siguientes funciones de la ArcGIS API for Python: dependent_upon() y dependent_to().

Procedimiento

Los siguientes pasos describen cómo encontrar las dependencias en Portal for ArcGIS utilizando la ArcGIS API for Python.

  1. Importar los módulos necesarios.
from arcgis.gis import GIS from IPython.display import display
  1. Especificar la URL de origen y las credenciales de inicio de sesión de Portal for ArcGIS.
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. Crear un bucle para buscar todos los nombres de usuario en el portal.
for user in source_users: print(user.username + "\t:\t" + str(user.role))
  1. Crear un bucle para recopilar los Id. de elementos en las carpetas disponibles.
for user in source_users: num_items = 0 num_folders = 0 print("Recopilando ID de elementos para {}".format(user.username), end="\n\n") user_content = user.items()
  1. En el mismo bucle, recuperar los Id. de elemento de la carpeta raíz y comprobar si hay dependencias.
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} depende de estos elementos: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t Este elemento también es una dependencia de estos elementos: {}".format(item.dependent_to()))
  1. En el mismo bucle, recuperar los Id. de elemento de las subcarpetas y comprobar si hay dependencias.
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 El elemento: \t {2} \t\t\t id {0} depende de estos elementos: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t Este elemento también es una dependencia de estos elementos: {}".format(item.dependent_to())) print("Número de carpetas {} # Número de elementos {} # Número de usuarios {}".format(str(num_folders), str(num_items), len(source_users)))

A continuación, se muestra el script completo:

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('Lista de usuarios: rol') 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("Recopilando ID de elementos para {}".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 El elemento: \t {2} \t\t\t id {0} depende de estos elementos: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t Este elemento también es una dependencia de: {}".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 Elemento: \t {2} \t\t\t id {0} depende de estos elementos: \t {1}".format(item.itemid,item.dependent_upon(), item.title)) if (item.dependent_to()['total'] > 0): print("\t Este elemento también es una dependencia de estos elementos: {}".format(item.dependent_to())) print("Número de carpetas {} # Número de elementos {} # Número de usuarios {}".format(str(num_folders), str(num_items), len(source_users)))

Id. de artículo:000021183

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga

Información relacionada

Descubrir más sobre este tema