ArcSDE MultiUser Editing

I attended a new class offered by ESRI the past few days, “Managing Editing Workflows in a Multiuser Geodatabase“. It really does a good job of exploring “State Trees“. I’ve never really dug into state trees before, as far as I can tell ArcObjects doesn’t expose anything about them. I recommend this class to ArcSDE admins, but suggest waiting until Geodatabase Toolset (gdbt) has been ported to 9.2. In the class we spent a lot of time looking at State Trees by connecting dots on paper with ids from sql queries. In looking at gdbt help doc, there are tools to graphically explore state trees.
Since ArcSDE is now a “technology” included with ArcGIS Server (and no longer a “product”) it would be nice to see the folks over at the ArcGIS Server blog discussing ArcSDE. All you ArcSDE admins out there: make noise for ESRI to expose state trees via ArcObjects. This would enable arcobjects programmers to write lots of useful tools for you. Right now, writing a tool involves directly querying the underlying SDE_XXX tables. This sort of thing is normally avoided, but without any ArcObjects support, I don’t see any choice.

Somehow the current editoperation is tied to a state in the state tree. It’s good to see the new “IsInEditOperation” method, now how about the stateID ?

Also would be useful for a “BeforeSaveEdits” event that we could use to validate changes before saving (and pass back a cancel = true boolean to make the system not save).


5 comments so far

  1. Howard Butler on

    You can also work with SDE’s state trees using the SDE C API without having to query directly into tables. I found it was really important to be precise when moving state nodes around or else you can leave a layer or the entire instance in quite a mess. This might be why ESRI hasn’t exposed the lower level state stuff up to ArcObjects yet.

    I developed a Python wrapper to the SDE C API called PySDE that allowed you to manipulate state trees, versions, and all associated locks using Python (plus mostly full coverage of the C API except for projections and rasters). The project currently lives at and I’m in the process of a really slow rewrite 🙂 The advantage of the rewrite is that the new code has the potential to support all of the languages that SWIG does — Java, C#, Perl, Ruby, Python, etc.


  2. kirkktx on

    Hey Howard,
    Thanks for the link to PySDE, looks promising. I’m hoping someone has written p/Invoke wrappers for the C API.

    Regards, Kirk

  3. […] I have blogged earlier, the Geodatabase Toolset (gdbt) appears to be what I need.  This is a freely  downloadable […]

  4. Luis on

    We would like to share with you our new ArcSDE maintenance tool,
    with many features. Version management will available soon.

  5. jungle on

    My organization, WI dont have the money to purchase arc editors which is necessary for multi-user editing of enterpise geodatabase. We only have one licensed copy running with arcserver 9.2. We would really like to have real time mapping of the location of development applications(buildings, plots, parcels etc) which we currently do.
    It works like this:

    we have six mappers that scan, georeference and digitize location maps attach to applications. These shapefiles are stored in a separate folder on the network. Weekly these shapefiles are merged and published to the enterprise geodatabase for use by other memebers of staff.

    I would like to cut out most this process and improve mapping and dispaly time.
    How can this be done with the current setup or otherwise your help is greatly needed.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: