for myLyr in arcpy.mapping.ListLayers(mxd): print ("Is this service layer ? : " + str(myLyr.isServiceLayer)) print ("Does it support service properties ? : " + str(myLyr.supports("SERVICEPROPERTIES")))
We used the following workaround:
1) in the webapplication, extend the printtask and set layername or id = service-URL.
2) in the pythonscript: take the serviceurl from the name attribute
I'm looking for a workaround for this, too. Given the MXD that was created from the webmap json, how can I get the URL for a service layer? It seems so simple, but I'm so stuck.
import arcpy import os import uuid # Input WebMap json Web_Map_as_JSON = arcpy.GetParameterAsText(0) # The template location in the server data store templateMxd = '//MyComputer/MyDataStore/BasicTutorial/LG_062912_10.1/LG_062912_10.1/LGIM_World_Topo_Map_v1.5.mxd' # Convert the WebMap to a map document result = arcpy.mapping.ConvertWebMapToMapDocument(Web_Map_as_JSON, templateMxd) mxd = result.mapDocument # Reference the data frame that contains the webmap # Note: ConvertWebMapToMapDocument renames the active dataframe in the template_mxd to "Webmap" df = arcpy.mapping.ListDataFrames(mxd, 'Webmap')[0] # Remove the service layer # This will just leave the vector layers from the template for lyr in arcpy.mapping.ListLayers(mxd, data_frame=df): if lyr.isServiceLayer: arcpy.mapping.RemoveLayer(df, lyr) # Use the uuid module to generate a GUID as part of the output name # This will ensure a unique output name output = 'WebMap_{}.pdf'.format(str(uuid.uuid1())) Output_File = os.path.join(arcpy.env.scratchFolder, output) # Export the WebMap arcpy.mapping.ExportToPDF(mxd, Output_File) # Set the output parameter to be the output file of the server job arcpy.SetParameterAsText(1, Output_File) # Clean up - delete the map document reference filePath = mxd.filePath del mxd, result os.remove(filePath)
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.