CÓMO

Automatizar la reasignación de propiedad de elementos de ArcGIS Online compartidos con grupos con la funcionalidad Actualizar

Last Published: December 9, 2021

Resumen

Al reasignar la propiedad de elementos en ArcGIS Online, un paso previo necesario consiste en dejar de compartir elementos de grupos especiales, como los de la funcionalidad Actualizar para todos los miembros, antes de cambiar o reasignar la propiedad. Esto lleva mucho tiempo cuando se reasigna la propiedad de varios elementos compartidos con los grupos de actualizaciones. Por lo tanto, resulta útil automatizar el proceso mediante un script de Python.

Procedimiento

Para automatizar el flujo de trabajo, utilice el siguiente script de Python independiente:

  1. Abra un editor de texto, como el Bloc de notas.
  2. En el editor de texto, importe los módulos necesarios y defina la URL y las credenciales del portal seleccionado.
from arcgis.gis import * gis = GIS("https://maps_sample.arcgis.com", "username", "password")
  1. Agregue los parámetros siguientes para reasignar la propiedad:
orig_userid = "First_User" new_userid = "Second_User" olduser = gis.users.get(orig_userid)
  1. Cambie la propiedad de los grupos del usuario anterior a un nuevo usuario.
usergroups = olduser.groups for group in usergroups:   grp = gis.groups.get(group['id'])   if (grp.owner == orig_userid):     grp.reassign_to(new_userid)   else:     grp.add_users(new_userid)     grp.remove_users(orig_userid) print("Groups has been transferred!") #Transferring items in folders      folders = olduser.folders for folder in folders:   gis.content.create_folder(folder['title'], new_userid)   folderitems = olduser.items(folder=folder['title'])   for item in folderitems:     itemgroup=item.shared_with     item.unshare(groups=itemgroup['groups'])     item.reassign_to(new_userid, target_folder=folder['title'])     item.share(groups=itemgroup['groups'], allow_members_to_edit=True) print("Folder content has been transferred!") userrootcontent = olduser.items() rootfoldername=olduser.username+"_RootFolder" gis.content.create_folder(rootfoldername, new_userid)
  1. Dejar de compartir los elementos de los grupos, reasignar la propiedad y volver a compartir los elementos con los grupos:
for item in userrootcontent:   itemgroup=item.shared_with   item.unshare(groups=itemgroup['groups'])   item.reassign_to(new_userid, target_folder=rootfoldername)   item.share(groups=itemgroup['groups'], allow_members_to_edit=True) print("Root folder content has been transferred!")
  1. Una vez que se haya completado el script, guarde el archivo de texto como un archivo .py.
  2. Haga doble clic en el archivo .py para ejecutar el script.

A continuación se muestra la secuencia de comandos completa.

from arcgis.gis import * gis = GIS("https://maps_sample.arcgis.com/", "username", "password") #Identifying users orig_userid = "User1" new_userid = "User2" olduser = gis.users.get(orig_userid) #Transferring the ownership of groups usergroups = olduser.groups for group in usergroups:   grp = gis.groups.get(group['id'])   if (grp.owner == orig_userid):     grp.reassign_to(new_userid)   else:     grp.add_users(new_userid)     grp.remove_users(orig_userid) print("Groups has been transferred!") #Transferring items in folders      folders = olduser.folders for folder in folders:   gis.content.create_folder(folder['title'], new_userid)   folderitems = olduser.items(folder=folder['title'])   for item in folderitems:     itemgroup=item.shared_with     item.unshare(groups=itemgroup['groups'])     item.reassign_to(new_userid, target_folder=folder['title'])     item.share(groups=itemgroup['groups'], allow_members_to_edit=True) print("Folder content has been transferred!") #Transferring items in the root folder    userrootcontent = olduser.items() rootfoldername=olduser.username+"_RootFolder" gis.content.create_folder(rootfoldername, new_userid) for item in userrootcontent:   itemgroup=item.shared_with   item.unshare(groups=itemgroup['groups'])   item.reassign_to(new_userid, target_folder=rootfoldername)   item.share(groups=itemgroup['groups'], allow_members_to_edit=True) print("Root folder content has been transferred!")

Id. de artículo:000021363

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