using an SOE to listen to edit events

2130
7
04-08-2013 10:57 AM
DrewDowling
Occasional Contributor III
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.

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.
0 Kudos
7 Replies
nicogis
MVP Frequent Contributor
you could extend with custom class extensions ( http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/index.html#//000100000201000000 ) and publish feature class
0 Kudos
DrewDowling
Occasional Contributor III
Thanks for the reply.

I'm trying to avoid class extensions as every user of the feature class is required to have them installed on their machines. In ArcMap an editor extension works great. I'm hoping an SOE could be the same as this for ArcServer.
0 Kudos
nicogis
MVP Frequent Contributor
Class Extensions ( http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/index.html#//0001000004p7000000 ) offer a transparent way of implementing custom behavior across all clients accessing a geodatabase but in your case you have 1 only client that it's arcgis server or I don't understand ("... I'm trying to avoid class extensions as every user of the feature class is required to have them installed on their machines ...")
0 Kudos
DrewDowling
Occasional Contributor III
The source feature class is in an SDE database and several applications consume it in different ways. Some edit it some don't. I'm trying to avoid having to install class extensions on all these users machines. Adding an SOE to replicate the onCreate event of a class extension would be a perfect solution for me. Do you know if this functionality is possible in some way with an SOE?

From the help: All clients require the customization's library, even to view the data
0 Kudos
nicogis
MVP Frequent Contributor
I don't understand: you have a feature service so do you consume it with a web application? Or have you a feature service consumed also from desktop? have the feature class same business logic for all client?
0 Kudos
DrewDowling
Occasional Contributor III
Sorry if I'm not being clear and thanks for your help.

I have a feature class. It is published as a feature service. I want to edit this feature service with a web app (3rd party, little ability to customize).

The feature class is also consumed by desktop apps, arcgis and 3rd party.

I do not wish to apply a class extension to the feature class as I do not wish to install the necessary .dlls to the desktops of users who are using the feature class directly. Also not sure how it would react with 3rd party apps.

I wish to use an SOE on the feature service to automate certain business logic for the add features operation of the feature service.

Do you, or anybody, know if this is possible?

For clarity: I know I can add another operation to the feature service to do this but my web app would then have to make an extra call to this operation. Instead I want it to be executed automatically when a new feature is created.
0 Kudos
nicogis
MVP Frequent Contributor
I think that you cannot do it with soe in your situation. If you want extend feature service you must expose your feature class creating a soe feature service (rest esri compliant) custom (kind how logic :  http://www.arcgis.com/home/item.html?id=6d28a606369c43fd9a6f929541ae7c93 ) with added your logic.

However I am curious how you manage multiediting (seen mix desktop apps/3rd party/feature service) because 3rd party doesn't understand versioning.
0 Kudos