What would be best approach to be notified when a user edits data by ArcMap or ArcGis Rest Services.
Environment: ArcMap & ArcGis Server 10.4.1, Oracle Sde
Thanks in advance
It depends on what level of notification are you after and how much edits will be done.
For example, you could put a trigger on the A/D tables for the layer that fires an email when a records is entered. This will notify you each time an edit is done. But if you have many edits (even of the same feature) then email overload can happen.
Another option is to count the features via the view for the feature class and compare it to previous count. This can be done on a given schedule and provide you with a summary of how much change was done. But you won't see which things were updated with the method.
If you are only interested in notifications on new records, you can create a notification flag field with a default value. Then it is just a matter of querying that value from the table either on-demand or on schedule. Once query, change the value to be reported.
Thank you very much Kevin;
First option, adding trigger is the most straightforward way of gathering all the edits at db level. However it is a static way, when someone creates a new feature class from Desktop/Catalog, adding the trigger to table manually must be remembered.
I am looking for a system level component. I think, SOI is a good example for this kind of job, but it resides at only server. Also GeoEvent Extension (GeoEvent Server) is a really good example for this kind of integrations. Maybe it is also using SOI internally.
You can easily configure and enable SOI for all layers. By its interception capabilities you get all the edits. It is possible to send this data to other systems asynchronously and audit every data edit to every versions. But as I said, it is only available at Server.
What do you think about using ArcObjects Extension for this kind of job? (alterClassExtensionCLSID)