Instrução

Publique uma camada de feição sem substituir as informações de rastreamento do editor usando ArcGIS API para Python

Last Published: November 28, 2022

Resumo

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.

Procedimento

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)
  1. Importe os módulos necessários.
import arcpy import os, sys from arcgis.gis import GIS
  1. Especifique o caminho para o projeto e as credenciais de login.
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'
  1. Defina as opções de compartilhamento, um caminho local na máquina para armazenar o conteúdo temporário e crie um novo arquivo de rascunho de definição de serviço (.sddraft) e teste para definição de serviço (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. Conecte-se ao portal especificado.
print('Connecting to {}'.format(portal)) gis = GIS(portal, user, password) #if single sign on, edit line above be gis = GIS(portal)
  1. Encontre o arquivo SD, atualize e substitua as edições da camada de feição, incluindo o snippet para preservar os carimbos de data/hora.
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 do Artigo:000021839

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com suporte técnico

Baixe o Esri Support App

Ir para opções de download