Instrução
Ao publicar uma camada de feição do ArcGIS Pro para o ArcGIS Online ou Portal for ArcGIS, é possível habilitar ou desabilitar as informações existentes do editor. No entanto, no ArcGIS Pro 2.5 e abaixo, ao publicar do ArcGIS Pro com campos de rastreamento do editor existentes, as informações são sobrescritas e substituídas pelas informações do editor e a data ou hora em que a camada é publicada. Isto foi projetado. No entanto, é possível preservar as informações de rastreamento do editor pré-existentes usando ArcGIS API for Python.
Siga as instruções abaixo para publicar uma camada de feição sem substituir as informações de rastreamento do editor usando ArcGIS API para Python.
Nota: Publique o serviço da feição desejado do ArcGIS Pro antes de prosseguir com essas etapas.
Insira o seguinte script para substituir a camada de feição existente e reter os valores originais das informações de rastreamento do 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:\Users\pathwayToYour.aprx' sd_fs_name = 'name of item in the portal' portal = 'https://PortalURL/portal/home' #or https://arcgis.com user = 'username' password = 'password'
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) #if single sign on, edit line above be gis = 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))
Obtenha ajuda de especialistas do ArcGIS
Baixe o Esri Support App