HOW TO
Beim Veröffentlichen eines Feature-Layers aus ArcGIS Pro in ArcGIS Online oder Portal for ArcGIS können Sie die vorhandenen Editor-Informationen aktivieren oder deaktivieren. In ArcGIS Pro 2.5 und niedriger jedoch werden beim Veröffentlichen aus ArcGIS Pro mit vorhandenen Editor-Tracking-Feldern die Informationen überschrieben und durch die Informationen des Publishers sowie das Datum oder die Uhrzeit der Veröffentlichung des Layers ersetzt. Dies geschieht entwurfsbedingt. Es ist jedoch möglich, die bereits vorhandenen Editor-Tracking-Informationen mithilfe von ArcGIS API for Python beizubehalten.
Befolgen Sie die nachstehenden Anweisungen zum Veröffentlichen eines Feature-Layers ohne Überschreiben der Editor-Tracking-Informationen mithilfe von ArcGIS API for Python.
Hinweis: Veröffentlichen Sie den gewünschten Feature-Service aus ArcGIS Pro, bevor Sie diese Schritte ausführen.
Fügen Sie das folgende Skript ein, um den vorhandenen Feature-Layer zu überschreiben und die ursprünglichen Werte der Editor-Tracking-Informationen beizubehalten:
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))
Hilfe von ArcGIS-Expert*innen erhalten
Die Esri Support-App herunterladen