方法
ArcGIS Pro から ArcGIS Online または Portal for ArcGIS にフィーチャ レイヤーを公開する場合、既存の編集情報の記録を有効化または無効化できます。 ただし、ArcGIS Pro 2.5 以前では、既存の編集情報の記録フィールドを使用して ArcGIS Pro から公開しようとすると、情報が上書きされ、公開者の情報と、レイヤーの公開日または時刻が置換されます。 これは仕様によるものです。 ただし、ArcGIS API for Python を使用すると、既存の編集情報の記録を維持することが可能です。
以下に、ArcGIS API for Python を使用し、編集情報の記録を上書きせずにフィーチャ レイヤーを公開する手順を示します。
注意: 次の手順を実行する前に、ArcGIS Pro から目的のフィーチャ サービスを公開してください。
既存のフィーチャ レイヤーを上書きし、編集情報の記録の元の値を維持するには、次のスクリプトを挿入します。
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))
ArcGIS の専門家からヘルプを受ける
Esri Support アプリのダウンロード