CÓMO
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().
Los siguientes pasos describen cómo encontrar las dependencias en Portal for ArcGIS utilizando la ArcGIS API for Python.
from arcgis.gis import GIS from IPython.display import display
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')
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 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()))
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)))
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri