Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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.

thanks

Drew

share|improve this question
    
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 '13 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 '13 at 23:36
add comment

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.

share|improve this answer
    
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 '13 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 '13 at 1:15
add comment

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.

share|improve this answer
    
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 '13 at 20:20
    
Thanks for the input by the way. –  Dowlers Apr 11 '13 at 20:35
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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