The next step in the ongoing upgrade saga was to load an existing feature class into a subtype of one of the new featureclasses. Of course, the new schema has fields which are not in the original featureclass, or which are now a different type.
The approach I took was to add some additional fields to the old featureclass, then create a multi-version view for that feature class, and use SQL to populate the fields in question, and then load the features into the new class using the Object Loader.
Adding the Fields
To get this done quickly, I simply added the new fields via ArcCatalog. Only hitch here is un-versioning the data. Luckily for us, this application applies all edits to the Default version, so there was no issue dropping the existing versions.
Creating the View
Once the fields were created, I fired up our ViewMaker tool. This tool simplifies the creation of multi-version views by generating the sdetable commands for you. This is very handy when you need to create views for an entire geodatabase. It also has a companion tool which will generate lookup tables from all the domains in a geodatabase – very handy when you want to generate reports using SQL.
Updating the fields
Now, why do this when I could simply “calc” the fields in ArcMap? Well, multi-version views allow you to update attribute data via SQL. Thus, I could write one SQL statement, and run it in 3 seconds rather than fiddling with the field calculator. And I like multi-version views.
[SQL in QueryAnalyzer]
Loading the Data
I now had the data in a format that I could load using the Object Loader. For those not familliar with this tool, it’s in both ArcMap and ArcCatalog, and it allows you to load data from one feature class into another, while defining field mappings.
This worked really nicely, the only beef I have is that the tool does not have any messaging upon completion. I then refreshed the view of the layer, and saw no records, and assumed something went wrong. So I ran it again. Again, there was no “X Records loaded” or “Processing Complete” or “Done!” message. This time, I disconnected from SDE and re-connected, where I saw that I had two copies of each record loaded. After dropping all the records (via edit session in ArcMap), I re-loaded the data, and all was well. Now I just need to get the data for the other 2 sub-types and load it
From here, the main tasks are systemic in nature. The schema changes that we applied concern a critical component of the data hiearchy – actual land ownership boundaries. It is at this level that we apply our spatial permissioning model – thus changes to this layer will have major ripple effects across the application. At this point, I’m mostly turning project over to other staff members, but I’ll be posting on any hilights or problems we run across. Maybe I’ll be able to convince them to start blogging too!

