Hello,
I'm having a bit of an issue with zipping up a shapefile on ArcGIS Server from calling a GP tool with WAB.
My code is below. It works for kmz and excels but having some trouble with the zipping and shpfile part.
This is what gets outputted by the tool
https://xxxxxx.com/server/rest/directories/arcgisjobs/gp/export/j0ba310e06ab92dsdsde8f71690faba/scra...
That link is invalid, however when I change it to (remove the extra scratch at the end)
https://xxxxxx.com/server/rest/directories/arcgisjobs/gp/export/j0ba310e06ab92dsdsde8f71690faba/scra...
It works, but then when I look in there, there is a scratch.gdb with nothing in it. When I run this in ArcMap it does produce the scratch.zip with the shpfile in it. C:\Users\adam\Documents\ArcGIS\scratch.zip
featureLayer = arcpy.GetParameter(0)
outputFormat = arcpy.GetParameterAsText(1)
if outputFormat == ".kmz (Google Earth)":
try:
kmzFile = os.path.join(arcpy.env.scratchFolder, "export.kmz")
arcpy.MakeFeatureLayer_management(featureLayer, "in_memory\layer")
#arcpy.ApplySymbologyFromLayer_management("in_memory\layer",lyr)
arcpy.LayerToKML_conversion("in_memory\layer", kmzFile)
arcpy.AddMessage("Success. You can find the kmz in the link below")
arcpy.AddMessage(kmzFile)
outputName = arcpy.SetParameterAsText(2,kmzFile)
except:
arcpy.AddMessage("Error exporting kmz")
sys.exit()
if outputFormat == ".xls (Excel)":
try:
excelFile = os.path.join(arcpy.env.scratchFolder, "export.xls")
arcpy.TableToExcel_conversion(featureLayer, excelFile)
outputName = arcpy.SetParameterAsText(2,excelFile)
except:
arcpy.AddMessage("Error exporting kmz")
sys.exit()
if outputFormat == ".shp (Shapefile)":
#shpFile = os.path.join(arcpy.env.scratchFolder, "export.shp")
arcpy.AddMessage("shp file")
#createFolder(outFolder + r'\data')
#a = outFolder + r'\data'
arcpy.FeatureClassToShapefile_conversion(featureLayer, arcpy.env.scratchFolder)
shutil.make_archive(arcpy.env.scratchFolder, 'zip', arcpy.env.scratchFolder)
outputFile = arcpy.env.scratchFolder + ".zip"
outputName = arcpy.SetParameterAsText(2, outputFile)