I can't find anything in the docs so thought it worth asking...
Is there any QML API support for calling a geoprocessing service?
Cheers
-Paul
Hi Paul,
If there is nothing in Runtime that hooks in, then you could always get to it via the REST interface using the NetworkRequest component.
Our Runtime QML API does not support GP yet. However, we plan to support it in our Quartz release, so until AppStudio is able to move to this, you will need to do what Gareth suggests and perform your own REST request.
Hi,
Is there an example that demonstrates a REST request for a geoprocessing service on a server?
Thanks,
Ruthann
I am highly interested in this topic. So I ask again: Is there an example of a REST request for a GP service on a server?
That would help me a lot!
Greetings and thanks,
Raphael
Hi Raphael,
there is a sample in AppStudio called networkrequest. It will show an example of making rest calls to an arcgis server. You should be able to follow that and modify it to call a GP service.
cheers,
gareth
Hi Gareth,
thanks for your reply! I tried figuring out how I can call my GP service. I have read the entire docu but I have the following problem:
I want to call my GP service in the networkrequest sample, but how can I specify the input in QML? I tried to build the URL like the examples at ArcGIS REST API :
"http://sampleserver2.arcgisonline.com/ArcGIS/rest/services/PublicSafety/EMModels/GPServer/ERGByChemical/submitJob?Incident_Point={ \"features\" : [{ \"geometry\" : {\"x\" : -104.44, \"y\" : 34.83}, \"attributes\" : {\"Id\" : 43, \"Name\" : \"Incident\"}}]} &Material_Type=&Wind_Bearing__direction_blowing_to__0_-_360_=&Day_or_Night_incident=&Large_or_Small_spill=&env:outSR=&env:processSR=&f=html"
I thought I need the "..." specified in my URL, but I get the following error message:
"NetworkRequest::setErrorText(const class QString &) "Protocol \"\" is unknown"
Is there another way to call my GP service with specified input?
Thank you in advance!!
Did you ever figure this out....
I have a GP Service running and I can input values and it works great...
I just cant figure out how to call that Service from AppStudio and pass it the input parameters.
Geoprocessing is now available in ArcGIS Runtime. You should be able to create a GeoprocessingTask by pointing to your service URL, create/modify parameters, and execute the task/job.
Here is the API ref doc - GeoprocessingTask QML Type | ArcGIS for Developers
Here is some conceptual doc for GP in Runtime - Run a geoprocessing task—ArcGIS Runtime SDK for Qt | ArcGIS for Developers
Here is a sample of using the GeoprocessingTask - arcgis-runtime-samples-qt/ArcGISRuntimeSDKQt_QMLSamples/Analysis/AnalyzeViewshed at master · Esri/arcgis-runtime-samples…
I was able to do this....but don know if this is the correct way....its the only time that I have been able to get a string or Object into the parameters...
BUT it show s my string two times....hmmmmm....wicked confused but trying
<SPAN class="keyword token">var</SPAN> viewshedParameters <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingParameters"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>executionType<SPAN class="punctuation token">:</SPAN> Enums<SPAN class="punctuation token">.</SPAN>GeoprocessingExecutionTypeSynchronousExecute <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> ObjectID <SPAN class="operator token">=</SPAN> <SPAN class="string token">"2067"</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> Comments <SPAN class="operator token">=</SPAN> <SPAN class="string token">"stupid"</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> params44 <SPAN class="operator token">=</SPAN> <SPAN class="string token">"{OBJECTID:"</SPAN> <SPAN class="operator token">+</SPAN> ObjectID <SPAN class="operator token">+</SPAN> <SPAN class="string token">",comments:"</SPAN> <SPAN class="operator token">+</SPAN> Comments <SPAN class="operator token">+</SPAN> <SPAN class="string token">"}"</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">// Add an input location to the geoprocessing parameters</SPAN> <SPAN class="keyword token">var</SPAN> inputs <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"Input_Observation_Point"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN> value<SPAN class="punctuation token">:</SPAN> params44 <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> viewshedParameters<SPAN class="punctuation token">.</SPAN>inputs <SPAN class="operator token">=</SPAN> inputs<SPAN class="punctuation token">;</SPAN> viewshedParameters<SPAN class="punctuation token">.</SPAN>objectName <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Parameter Name"</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">// Create the job that handles the communication between the application and the geoprocessing task</SPAN> viewshedJob <SPAN class="operator token">=</SPAN> viewshedTask<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createJob</SPAN><SPAN class="punctuation token">(</SPAN>viewshedParameters<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">// start the job</SPAN> viewshedJob<SPAN class="punctuation token">.</SPAN><SPAN class="token function">start</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
qml<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">"objectName"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objectType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"GeoprocessingJob"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"error"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objects"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"json"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"geoprocessingJob"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"needGpMapServiceUrl"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"parameters"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">"executionType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"execute"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"parameters"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"dataType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"GPString"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"direction"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"esriGPParameterDirectionInput"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"name"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"Input_Observation_Point"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"value"</SPAN><SPAN class="punctuation token">:</SPAN>" <SPAN class="punctuation token">{</SPAN>OBJECTID<SPAN class="punctuation token">:</SPAN><SPAN class="number token">2067</SPAN><SPAN class="punctuation token">,</SPAN>comments<SPAN class="punctuation token">:</SPAN>stupid<SPAN class="punctuation token">}</SPAN><SPAN class="string token">"}],"</SPAN>returnM<SPAN class="string token">":false,"</SPAN>returnZ"<SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"url"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"https://xyz/arcgis/rest/services/Tools/Update/GPServer/NewScriptToRun"</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"jobType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"geoprocessingJob"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"status"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"notStarted"</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"unknownJson"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"unsupportedJson"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"jobType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">4</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"messages"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"serverJobId"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"progress"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"jobStatus"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"error"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"credential"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">"objectName"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objectType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"Credential"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"error"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objects"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"username"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"password"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"authenticationType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"referer"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"token"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"tokenExpiry"</SPAN> <SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"tokenServiceUrl"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"oAuthClientInfo"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"oAuthAuthorizationCode"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"oAuthRefreshToken"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"pkcs12Info"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"sslRequired"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"authenticatingHost"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objects"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"requestConfiguration"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">"objectName"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objectType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"RequestConfiguration"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"error"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objects"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"timeoutInterval"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">60</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"maxNumberOfAttempts"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">5</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"forcePost"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"issueAuthenticationChallenge"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"userHeaders"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"url"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"checkStatusTaskStatus"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objects"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"result"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"parameters"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">"objectName"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objectType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"GeoprocessingParameters"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"error"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objects"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"executionType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"inputs"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"Input_Observation_Point"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="string token">"objectName"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objectType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"error"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"objects"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"parameterType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">9</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"value"</SPAN><SPAN class="punctuation token">:</SPAN>" <SPAN class="punctuation token">{</SPAN>OBJECTID<SPAN class="punctuation token">:</SPAN><SPAN class="number token">2067</SPAN><SPAN class="punctuation token">,</SPAN>comments<SPAN class="punctuation token">:</SPAN>stupid<SPAN class="punctuation token">}</SPAN><SPAN class="string token">"}},"</SPAN>outputSpatialReference"<SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"processSpatialReference"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"returnM"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"returnZ"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN> <SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Here is a simplified example from our unit tests that shows how to create parameters, add gp string input, and input to the parameters. It is very similar to what you have, but I'm wondering about your "params44" variable - do you want that to be a JSON string?
<SPAN class="keyword token">var</SPAN> gpParameters <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingParameters"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>executionType<SPAN class="punctuation token">:</SPAN> Enums<SPAN class="punctuation token">.</SPAN>GeoprocessingExecutionTypeSynchronousExecute <SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> inputs <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"InputString"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"string value"</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> gpParameters<SPAN class="punctuation token">.</SPAN>inputs <SPAN class="operator token">=</SPAN> inputs<SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
How would I format the string so that I can parse it or write it to variables once I get to the GP Service that is lookin gfor input parameters...
varItem = arcpy.GetParameterAsText(0) varPublicPrivate = arcpy.GetParameterAsText(1) varCaseNum = arcpy.GetParameterAsText(2)
In this case, you have 3 parameters, so you should be able to add 3 different inputs to the input json.
var inputs = {}; inputs["Item"] = ArcGISRuntimeEnvironment.createObject("GeoprocessingString", {value: "string value"}); inputs["PublicPrivate"] = ArcGISRuntimeEnvironment.createObject("GeoprocessingString", {value: "string value"}); inputs["CaseNumber"] = ArcGISRuntimeEnvironment.createObject("GeoprocessingString", {value: "string value"});<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Im a bit confused here....I am returning a few results in AppStudio
When I am building my inputs {} I order them like this
I console.log two variables the "inputs" AND "gpParameters"
Look at the results below of each variable....the order in which they are being built is different...I think this is throwing off the values when they get to the Service?
Am I correct to assume that the order does not matter.....BUT the input name matters when it is liked up to the GP Service Parameters and the name assigned to them?
Where as, if my Input name is "Item" I need a corresponding GP Service Parameter named "Item"
Funny thing is that I have that but when I run the code nothing happens....
Is there anyway I can error trap this and alert something from the App Studio Side to the arcgis Server GP tool side...
I cant find anything to test from the Submit on the App Studio Side and test if the connection was made to the GP Service
<SPAN class="keyword token">var</SPAN> gpParameters <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingParameters"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>executionType<SPAN class="punctuation token">:</SPAN> Enums<SPAN class="punctuation token">.</SPAN>GeoprocessingExecutionTypeSynchronousExecute<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">var</SPAN> inputs <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"Item"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varItem<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"PublicPrivate"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varPublicPrivate<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"CaseNumber"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varCaseNum<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"Comments"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varComments<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"Classification"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varClassification<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"ObjectID"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varObjectID<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"lastEditor"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varlastEditUser<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> inputs<SPAN class="punctuation token">[</SPAN><SPAN class="string token">"LastDate"</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> ArcGISRuntimeEnvironment<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createObject</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"GeoprocessingString"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>value<SPAN class="punctuation token">:</SPAN> varEditedDate<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="comment token">//inputs["InputString"] = ArcGISRuntimeEnvironment.createObject("GeoprocessingString", {value: varEditedDate});</SPAN> console<SPAN class="punctuation token">.</SPAN><SPAN class="token function">log</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"inputs: "</SPAN> <SPAN class="operator token">+</SPAN> JSON<SPAN class="punctuation token">.</SPAN><SPAN class="token function">stringify</SPAN><SPAN class="punctuation token">(</SPAN>inputs<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> gpParameters<SPAN class="punctuation token">.</SPAN>inputs <SPAN class="operator token">=</SPAN> inputs<SPAN class="punctuation token">;</SPAN> console<SPAN class="punctuation token">.</SPAN><SPAN class="token function">log</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"gp parameters: "</SPAN> <SPAN class="operator token">+</SPAN> JSON<SPAN class="punctuation token">.</SPAN><SPAN class="token function">stringify</SPAN><SPAN class="punctuation token">(</SPAN>gpParameters<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
qml: inputs: {
"Item":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"shooter"},
"PublicPrivate":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"private"},
"CaseNumber":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"555"},
"Comments":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"stupid comment"},
"Classification":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"Boating"},
"ObjectID":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"2067"},
"lastEditor":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"jay"},
"LastDate":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"5/12/2019"}}
qml: gp parameters: {
"objectName":"","objectType":"GeoprocessingParameters","error":null,"objects":{},"executionType":1,"inputs":
{"CaseNumber":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"555"},
"LastDate":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"5/12/2019"},
"lastEditor":{"objectName":"","objectType":"GeoprocessingString","error":null,"objects":{},"parameterType":9,"value":"jay"}},
"outputSpatialReference":null,"processSpatialReference":null,"returnM":false,"returnZ":false}
The order changes because JSON preserves order whereas the underlying data type in GeoprocessingParameters.input does not (QVariantMap). However, I don't believe the order should matter - to my knowledge, the REST request that comes in assigns the inputs via name and not index. I think something else must be going on here and the order is a red herring.
Turns out it was the service URL...I changed to the second one and it worked
I added the "submitJob" and it worked.....
"https://xyz/arcgis/rest/services/xyz/Update/GPServer/NewScriptToRun" "https://xyz/arcgis/rest/services/xyz/Update/GPServer/NewScriptToRun/submitJob"
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.