Export ServiceDefinition(.sd) file from ArcPro

130
0
12-27-2022 12:35 PM
Status:Open
Paco
by
New Contributor III

From what I can tell, just creating a standalone ServiceDefintion(.sd) file from ArcPro is not as straightforward as it was in ArcMap. so, I created this very rudimentary Python Script that will do just that, and will also upload that .sd file to AGOL. very simple, no error checking, just a few Parameter inputs/outputs.

maybe this will be of help to others.

cheers, p

import arcpy
import os

arcpy.env.overwriteOutput = True

tags = 'service'
summary = 'Create Service Definition file ArcPro'

layer = arcpy.GetParameterAsText(0)
output_folder = arcpy.GetParameterAsText(1)
service_name = arcpy.GetParameterAsText(2)

arcpy.AddMessage(layer)

sddraft = output_folder +'\Draft_sd.sddraft'
sd = os.path.join(output_folder, service_name + '.sd')

aprx = arcpy.mp.ArcGISProject("CURRENT")
m = aprx.listMaps("Map")[0]
aprx.save()
for lyr in m.listLayers():
if lyr.name == layer:
arcpy.mp.CreateWebLayerSDDraft(lyr, sddraft, service_name, 'MY_HOSTED_SERVICES','FEATURE_ACCESS')
arcpy.StageService_server(sddraft, sd)
arcpy.UploadServiceDefinition_server(sd,'MY_HOSTED_SERVICES',service_name)


os.remove(sddraft)

#Choose Feature from existing Feature Layer in ArcPro session only.
#Outside Features are FeatureClasses not FeatureLayers
#Will create an .sd file in chosen Folder and create a Feature Service in user's AGOL Content

Tags(1)