ArcGIS e Python: Overwrite de camada no ArcGIS Online ou ArcGIS Enterprise

ArcGIS e Python: Overwrite de camada no ArcGIS Online ou ArcGIS Enterprise
 

Neste vídeo demonstramos como você pode utilizar um script Python para automatizar as rotinas de overwrite de camadas do ArcGIS Online ou ArcGIS Enterprise.

Segue abaixo o script Python utilizado no vídeo:

import arcpy
import os, sys
from arcgis.gis import GIS

prjPath = r”D:/Projetos ArcGIS Pro/overwrite_featurelayer/overwrite_featurelayer.aprx”

sd_fs_name = “poligono”
portal = “http://www.arcgis.com” # Can also reference a local portal
user = “seu_usuario”
password = “sua_senha”

shrOrg = True
shrEveryone = False
shrGroups = “”

relPath = r’D:/Projetos ArcGIS Pro/overwrite_featurelayer’
sddraft = os.path.join(relPath, “temporary service name.sddraft”)
sd = os.path.join(relPath, “temporary service name.sd”)

print(“Creating SD file”)
arcpy.env.overwriteOutput = True
prj = arcpy.mp.ArcGISProject(prjPath)
mp = prj.listMaps()[0]

sharing_draft = mp.getWebLayerSharingDraft(“HOSTING_SERVER”, “FEATURE”, sd_fs_name)
sharing_draft.summary = “My Summary”
sharing_draft.tags = “My Tags”
sharing_draft.description = “My Description”
sharing_draft.credits = “My Credits”
sharing_draft.useLimitations = “My Use Limitations”

sharing_draft.exportToSDDraft(“temporary service name.sddraft”)
arcpy.StageService_server(sddraft, sd)

print(“Connecting to {}”.format(portal))
gis = GIS(portal, user, password)

# Find the SD, update it, publish /w overwrite and set sharing and metadata
print(“Search for original SD on portal…”)
print(f”Query: {sd_fs_name}”)
sdItem = gis.content.search(query=sd_fs_name, item_type=”Service Definition”)
i=0
while sdItem[i].title != sd_fs_name:
i += 1
print(‘Item Found’)
print(f’item[i].title = {sdItem[i].title}, sd_fs_name = {sd_fs_name}’)
item = sdItem[i]
item.update(data=sd)

print(“Overwriting existing feature service…”)
fs = item.publish(overwrite=True)

if shrOrg or shrEveryone or shrGroups:
print(“Setting sharing options…”)
fs.share(org=shrOrg, everyone=shrEveryone, groups=shrGroups)

print(“Finished updating: {} – ID: {}”.format(fs.title, fs.id))

Precisa de Ajuda?

Conte com nosso time de especialistas – Utilize este formulário

2 + 1 =

Primeira vez no site?

para obter mais informações sobre este benefício
entre em contato com o seu representando comercial