Thursday, 14 April 2016

python - Tracking change with ArcSDE/Oracle


I'm looking for the simplest way to track changes ([delete, update, create] feature(s)) made to the DEFAULT version of a given feature class in ArcSDE(10) and Oracle(11g).


Qualifier: I am not a dba and I have only enough of an understanding of versions to get by as a self-proclaimed developer.


I'm trying to avoid:



  1. Mucking around with state IDs, delta tables, and triggers if poss.


  2. Running expensive feature-by-feature comparisons with target datasets.


I'm hoping to access this 'change log' table/query with python/cxOracle or .Net if necessary.


Update: *Here are some additional items I'd like to avoid:*



  1. Developing, deploying, and managing custom editing class extensions to all editing users' machines.

  2. Upgrading to ArcGIS 10.1



Answer



This is exactly what Historical Versions (aka Archiving) were created for. Go ahead and Enable Archiving in ArcCatalog. Create a Historical Marker for the initial source version and another one for the end. Then you can open the table in a version created from the first marker, another one for a version in the target marker. A difference cursor will spit out all the changes. There are examples on the website that do exactly this.



You will not need to muck with triggers, expensive comparissons nor edit extensions since this is all out-of-the-box functionality. Also has been there since 9.2.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...