Notifying an other system when a user edits data

148
2
09-10-2018 03:56 AM
Highlighted
New Contributor

Hi,

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

Enterprise GIS‌ Geodatabase ArcGIS Enterprise

Reply
0 Kudos
2 Replies
Highlighted
Occasional Contributor III

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.

Highlighted
New Contributor

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.

The other options are also static ways in terms of user & record level.

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)

Best wishes
Murat

Reply
0 Kudos