CÓMO

Publicar una capa de entidades sin sobrescribir la información de rastreo del editor mediante ArcGIS API for Python

Last Published: November 28, 2022

Resumen

Al publicar una capa de entidades desde ArcGIS Pro en ArcGIS Online o Portal for ArcGIS, es posible habilitar o deshabilitar la información existente del editor. Sin embargo, en ArcGIS Pro 2.5 y anteriores, al publicar desde ArcGIS Pro con campos de rastreo del editor existentes, la información se sobrescribe y se sustituye por la información del publicador y la fecha u hora en que se publica la capa. Se debe al diseño. Sin embargo, es posible conservar la información de rastreo del editor preexistente utilizando ArcGIS API for Python.

Siga estas instrucciones para publicar una capa de entidades sin sobrescribir la información de rastreo del editor mediante ArcGIS API for Python.

Procedimiento

Nota: Publique el servicio de entidades deseado desde ArcGIS Pro antes de continuar con estos pasos.

Inserte el siguiente script para sobrescribir la capa de entidades existente y conservar los valores originales de la información de rastreo del editor:

pub_params = {"editorTrackingInfo" : {"enableEditorTracking":'true', "preserveEditUsersAndTimestamps":'true'}} sdItem.update(data=sd) print('Overwriting existing feature service…') fs = sdItem.publish(publish_parameters=pub_params,overwrite=True)
  1. Importe los módulos necesarios.
import arcpy import os, sys from arcgis.gis import GIS
  1. Especifique la ruta al proyecto y las credenciales de inicio de sesión.
prjPath = r'C:\Usuarios\rutaalsuyo.aprx' sd_fs_name = 'nombre del elemento en el portal' portal = 'https://URLportal/portal/home' #o https://arcgis.com user = 'nombre de usuario' password = 'contraseña'
  1. Establezca las opciones de uso compartido, una ruta local en el equipo para almacenar el contenido temporal, y cree un nuevo archivo de borrador de definición de servicio (.sddraft) y publique temporalmente como definición de servicio (SD).
shrOrg = True shrEveryone = False shrGroups = '' relPath = sys.path[0] sddraft = os.path.join(relPath, 'WebUpdate.sddraft') sd = os.path.join(relPath, 'WebUpdate.sd') print('Creating SD file') arcpy.env.overwriteOutput = True prj = arcpy.mp.ArcGISProject(prjPath) mp = prj.listMaps()[0] arcpy.mp.CreateWebLayerSDDraft(mp, sddraft, sd_fs_name, "MY_HOSTED_SERVICES", "FEATURE_ACCESS", None, True, True, True) arcpy.StageService_server(sddraft, sd)
  1. Conéctese al portal especificado.
print('Connecting to {}'.format(portal)) gis = GIS(portal, user, password) #si es inicio de sesión único, edite la línea anterior para que sea = GIS(portal)
  1. Busque el archivo SD, actualice y sobrescriba las ediciones de la capa de entidades, incluido el fragmento de código para conservar las marcas de tiempo.
print('Search for original SD on portal…') sdItem = gis.content.search('{} AND owner:{}'.format(sd_fs_name, user), item_type='Service Definition')[0] print('Found SD: {}, ID: {} n Uploading and overwriting…'.format(sdItem.title, sdItem.id)) pub_params = {"editorTrackingInfo" : {"enableEditorTracking":'true', "preserveEditUsersAndTimestamps":'true'}} sdItem.update(data=sd) print('Overwriting existing feature service…') fs = sdItem.publish(publish_parameters=pub_params,overwrite=True) fs.share(org=shrOrg, everyone=shrEveryone, groups=shrGroups) print('Finished updating: {} – ID: {}'.format(fs.title, fs.id))

Id. de artículo:000021839

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