Bit of a conceptual issue

I have a situation where I need to add business logic to newly created features in a feature service. When new features are created I need to preform overlays and assign an ID from a stored procedure. I need this to happen automatically. In the desktop world this was easily done by listening for edit events in either an editor extension or a object class extension. Can SOEs accomplish the same thing? All the samples I have seen are for adding additional operations. I haven't seen anything for extending existing ones, in this case I guess it would be the create features operation of the REST Feature Service that needs to be extended.

My understanding of SOEs is that they can add functionality to map services but can they extend existing functionality? Am I on the right track with SOEs or is another approach recommended?

Any help/suggestions always greatly appreciated.



  • I may be wrong... I think you need to use Arc-Object for that or You can do using Python also. Which ArcGIS Server version you are using (10 or 10.1)?
    – Sunil
    Apr 9, 2013 at 6:38
  • @Sunil I'm using ArcServer 10.1. I'm guessing it will be all ArcObjects code. I just don't know if the listener event for object classes such as onCreate are available in the ArcServer library's. I have looked for onUpdate etc and haven't seen anything.
    – Dowlers
    Apr 9, 2013 at 23:36

2 Answers 2


You are right: SOE is not designed to extend existing AGS services.

Geodatabase extensions are the way to go. They are fired by any geodatabase client access (includes AGS feature services). Take a look: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Geodatabase_extensions/0001000004p7000000/

Just like SOEs, Geodatabase extensions are written using ArcObjects.

Good luck.

  • Thanks Samuel. I was hoping to avoid class extensions as there is a 3rd party app that reads the feature class and I don't know how it will react. Also installing on each machine is a pain. Thanks for the input.
    – Dowlers
    Apr 11, 2013 at 20:34
  • Using Class Extensions you will have to register (SO level) the DLL for every access to the geodatabase, that includes your 3rd party app.
    – Samuel
    Apr 13, 2013 at 1:15

If the layers used by the service are in a DB as your mention of stored procs suggests, and all your logic can be expressed in SQL, you can use DB triggers. We do this routinely with Oracle ArcSDE feature classes - IDs get assigned from sequence on insert, business logic is expressed in SQL functions hanging on insert/update. This is always easier to implement/deploy than any kind of ArcGIS Server or GDB extension.

  • Thanks MC5. unfortunately I also need to perform overlays so a triggers won't work. (If we were using the SQL Server native geometry type it might but I don't think SQL spatial commands work with the esri geometry type).
    – Dowlers
    Apr 11, 2013 at 20:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.