Hi,
Environment: ArcGIS Pro 3.2.1, ArcGIS Enterprise 11.1
I published a geoprocessing tool which converts AutoCAD .dwg file to .geojson format.
When i try to run it from WebApp Builder or Portal Map viewer classic, It throughs below error.
It worked fine on ArcGIS Pro desktop, with no issues
"
Traceback (most recent call last): File "", line 99, in execute File "C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\Resources\ArcPy\arcpy\conversion.py", line 2169, in CADToGeodatabase raise e File "C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\Resources\ArcPy\arcpy\conversion.py", line 2166, in CADToGeodatabase retval = convertArcObjectToPythonObject(gp.CADToGeodatabase_conversion(*gp_fixargs((input_cad_datasets, out_gdb_path, out_dataset_name, reference_scale, spatial_reference), True))) File "C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\Resources\ArcPy\arcpy\geoprocessing\_base.py", line 512, in return lambda *args: val(*gp_fixargs(args, True)) arcgisscripting.ExecuteError: Failed to execute. Parameters are not valid. ERROR 000732: Output Geodatabase: Dataset
C:\Users\PRODGI~1\AppData\Local\Temp\tmp2vw9kb42
\\networkfiles\location\arcgisserver\directories\arcgissystem\arcgisinput\others\Tool1.GPServer\extracted\p30\..\cd\shapefile_datatemp.gdb does not exist or is not supported Failed to execute (CADToGeodatabase). Failed to execute (DWGtoGEOJSON_Stage1). Failed.
"
# -*- coding: utf-8 -*-
import arcpy
import os
import tempfile
import os.path
import shutil
class Toolbox:
def __init__(self):
"""Define the toolbox (the name of the toolbox is the name of the
.pyt file)."""
self.label = "toolbox"
self.alias = "toolbox"
# List of tool classes associated with this toolbox
self.tools = [Tool]
class Tool:
def __init__(self):
"""Define the tool (tool name is the name of the class)."""
self.label = "DWGtoGEOJSON_Stage1"
self.description = ""
def getParameterInfo(self):
"""Define the tool parameters."""
params = [
arcpy.Parameter(displayName="Input_CAD_File",
name="in_cad",
datatype="DEFile",
parameterType="Required",
direction="Input"),
arcpy.Parameter(displayName="Output GEOJSON File",
name="out_geojson",
datatype="DEFile",
parameterType="Required",
direction="Output")
]
return params
def isLicensed(self):
"""Set whether the tool is licensed to execute."""
return True
def updateParameters(self, parameters):
"""Modify the values and properties of parameters before internal
validation is performed. This method is called whenever a parameter
has been changed."""
return
def updateMessages(self, parameters):
"""Modify the messages created by internal validation for each tool
parameter. This method is called after internal validation."""
return
def execute(self, parameters, messages):
"""The source code of the tool."""
in_cad = parameters[0].valueAsText
out_geojson = parameters[1].valueAsText
temp_dir = tempfile.mkdtemp()
temp_gdb = "temp.gdb"
arcpy.CreateFileGDB_management(temp_dir, temp_gdb)
arcpy.env.workspace = os.path.join(temp_dir, temp_gdb)
# Execute Create FileGDB, temp
arcpy.CreateFileGDB_management(temp_dir, temp_gdb)
#####################################
# Process: CAD to Geodatabase
arcpy.CADToGeodatabase_conversion(in_cad, temp_dir+'//'+temp_gdb, "FClass", "1000", "GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]];-400 -400 11258999068426.2;-1073.7418235 4194304001953.12;-100000 10000;8.98315284119522E-09;0.001;0.001;IsHighPrecision")
#####################################
# Process: Iterate Feature Classes
datasets = arcpy.ListDatasets(feature_type='feature')
datasets = [''] + datasets if datasets is not None else []
for ds in datasets:
for fc in arcpy.ListFeatureClasses(feature_dataset=ds):
path = os.path.join(arcpy.env.workspace, ds, fc)
print(path)
arcpy.FeaturesToJSON_conversion(fc, out_geojson, "FORMATTED", "NO_Z_VALUES", "NO_M_VALUES", "GEOJSON")
#####################################
# Process: Features To JSON
## arcpy.FeaturesToJSON_conversion(fc, out_geojson, "FORMATTED", "NO_Z_VALUES", "NO_M_VALUES", "GEOJSON")
#####################################
# Execute Delete FileGDB
#arcpy.Delete_management(newpath)
## return
def postExecute(self, parameters):
"""This method takes place after outputs are processed and
added to the display."""
return