I am new to the ArcGIS Pro SDK. I am attempting to run a Python toolbox tool that I published to ArcGIS Server as a GPServer. The task is asynchronous (esriExecutionTypeAsynchronous).
I have tried running the tool using await Geoprocessing.ExecuteToolAsync(), this successfully submits the job, and the job is successful. However, my code does not actually wait until the job finishes. It just submits it, and then continues.
Is there way to submit a job and check its status until completion using the Geoprocessing namespace or any other function in the SDK? Or do I just need to do this using the ArcGIS Server REST API?
The gist of my code:
<SPAN class="keyword token">protected</SPAN> <SPAN class="keyword token">override</SPAN> <SPAN class="keyword token">async</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="token function">OnClick</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">// Setup Progress dialog</SPAN>
<SPAN class="keyword token">var</SPAN> progDlg <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">ProgressDialog</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"Running Tool"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Cancel"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">100</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
progDlg<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Show</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> progSrc <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">CancelableProgressorSource</SPAN><SPAN class="punctuation token">(</SPAN>progDlg<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">// Tool parameters</SPAN>
<SPAN class="keyword token">string</SPAN> tool_path <SPAN class="operator token">=</SPAN> <SPAN class="string token">@"path to my tool on server using a .ags file"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">string</SPAN> flags_fc <SPAN class="operator token">=</SPAN> <SPAN class="string token">@"path to a feature class"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">string</SPAN> barriers_fc <SPAN class="operator token">=</SPAN> <SPAN class="string token">@"path to a feature class"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">string</SPAN> skip_locations <SPAN class="operator token">=</SPAN> <SPAN class="string token">@"path to a feature class"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> parameters <SPAN class="operator token">=</SPAN> Geoprocessing<SPAN class="punctuation token">.</SPAN><SPAN class="token function">MakeValueArray</SPAN><SPAN class="punctuation token">(</SPAN>flags_fc<SPAN class="punctuation token">,</SPAN> barriers_fc<SPAN class="punctuation token">,</SPAN> skip_locations<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">// Run the Tool</SPAN>
<SPAN class="keyword token">var</SPAN> result <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">await</SPAN> Geoprocessing<SPAN class="punctuation token">.</SPAN><SPAN class="token function">ExecuteToolAsync</SPAN><SPAN class="punctuation token">(</SPAN>tool_path<SPAN class="punctuation token">,</SPAN> parameters<SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">new</SPAN>
<SPAN class="token class-name">CancelableProgressorSource</SPAN><SPAN class="punctuation token">(</SPAN>progDlg<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>Progressor<SPAN class="punctuation token">,</SPAN> GPExecuteToolFlags<SPAN class="punctuation token">.</SPAN>Default<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
progDlg<SPAN class="punctuation token">.</SPAN><SPAN class="token function">Hide</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
Geoprocessing<SPAN class="punctuation token">.</SPAN><SPAN class="token function">ShowMessageBox</SPAN><SPAN class="punctuation token">(</SPAN>result<SPAN class="punctuation token">.</SPAN>Messages<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"GP Messages"</SPAN><SPAN class="punctuation token">,</SPAN> result<SPAN class="punctuation token">.</SPAN>IsFailed <SPAN class="operator token">?</SPAN>
GPMessageBoxStyle<SPAN class="punctuation token">.</SPAN>Error <SPAN class="punctuation token">:</SPAN> GPMessageBoxStyle<SPAN class="punctuation token">.</SPAN>Default<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>Thanks,
James