Tracking the data changes dynamically..... (how to?)

02-03-2015 06:54 AM
New Contributor III

Hi All,

We needed suggestions or inputs on a workflow our client would like to implement. Here is the situation:

Our client has a parcel layer which is edited ( attributes of existing parcels are updated or new parcels are added or existing parcels are deleted) on a daily basis. They have another system (mainframe) where they need to enter\upload this updated information once the editing is finished.

For this, at the end of the day they would like to find out\extract ONLY the parcels which were updated\added\deleted on that particular day from the entire parcel feature class. Once they get this data they will pass it on to other team who will be responsible for updating their mainframe with this information.

They are working with

SQL Server 2012

ArcGIS 10.3 , geodatabase is also at 10.3

Data is registered as versioned

Archiving is enabled

Editor tracking is enabled

They are looking for a dynamic method of generating this information on a daily basis.

Any ideas or inputs for this would be much appreciated.

Thank you!

0 Kudos
4 Replies
Esri Esteemed Contributor

You may be interested in the Python/Arcpy solution provided in this thread:

python - How can I extract the data showed in Version Changes before reconcile/post process? - Geogr...

New Contributor III

This is exactly what I was looking for. However I do not know how this script can be implemented in ArcGIS. My python knowledge is restricted to exporting model into  a python and then working on it.

Has anyone tried this? Or can someone assist me in implementing this script?

0 Kudos
New Contributor III

Create a rolling version specifically for getting daily changes, it will not be edited but instead act like a named tag in the state tree.  Each night when you want to extract the edits since the last extract you create a new version off default and then get the edits between the previous version and the new one e.g. using VersionDataChanges, IDataChangesInfo or IDataChangesEx get_ChangedIDs, or IDifferenceCursor.Differences in a custom dll.  Once you have the extract delete the old version and the new one you created is used as the old one the next night, and so on.

This has the advantage of allowing multiple editors to post changes during the day and possibly skipping multiple days if you want.

0 Kudos
MVP Esteemed Contributor

Not completely sure this will address your need, although I think it is in the ballpark:


Although I am not currently implementing it, I did implement it on a project years back.  If my memory serves me, it worked well, and I especially liked that it was a SQL view so you can check for all of the edits at any time you want by refreshing the view.