CÓMO
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.
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)
import arcpy import os, sys from arcgis.gis import GIS
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'
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)
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)
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))
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri