Support Custom C# GP tools (like IGpFunction2) in SDK

341
0
07-01-2022 08:30 AM
Status: Open
KirkKuykendall1
Occasional Contributor III

I'm able to use classes in the Enterprise SDK assemblies inside an ArcGIS Pro Core Console app. (I hope this is a feature and not a bug.)

It seems to me it wouldn't be hard for Esri to support creation of GP tools similar to the way SOIs and SOEs are supported.  This could be done by implementing IGpFunction2 in an assembly, bundling it up into a .gp file (analogous to .soe), uploading it to the site, then creating a new GP service in ArcGIS Manager.

Some users were left stranded with legacy custom C# gp tools published as services.  This could be a path forward for them.

The existing doc for SOE's says: 

Geoprocessing is not available in the ArcGIS Enterprise SDK. We want to encourage developers to use geoprocessing services rather than writing geoprocessing code in SOEs. There are multiple reasons for this, but one of the key reasons is that analysis might take significant amounts of time. On the web, it's better to use an asynchronous approach to long-running requests. Many network components will terminate idle web connections after one minute, so a synchronous approach doesn't work well. Often, developers will work on sample data that's fast in a development environment without firewalls, and discover too late that they need an asynchronous pattern. The only type of service that supports asynchronous requests are geoprocessing services.

.. but things like tracing and topology edge walking can't be done with python.  Enterprise SDK can do this.

People who painfully followed this advice are now stranded.

It would also be nice if the same GP tool built with Enterprise SDK could be run (and debugged!) locally with ArcGIS Pro before deploying to Server (where debugging is a LOT harder).

Tags (3)