Branch versioning

From Wildsong
Jump to navigationJump to search

This page is about the Esri ArcGIS Enterprise "Branch Versioning".

Caveat emptor

You might not find this written elsewhere, but heed it you must.

ArcGIS Pro 2.8 works only with Enterprise 10.9

ArcGIS Pro 2.9 works only with Enterprise 10.9.1

There are only a few free resources because this is a relatively new thing. Esri currently has only a paid 1 day $750 class. Nonetheless, I persist.

I am not going to explain what it is here because that's described elsewhere. This page is my notes made while experimenting. See the resources section below for detailed information.

Versioning

Basically, put the data into a feature class in an Enterprise geodatabase.

Share it as a Map Image Layer with Features enabled to a Portal.

Add it to an ArcGIS Pro project

Create a version aka a branch

Edit

Whee!

History grows forevermore, there is no way to remove it "at this time." I consider this a good thing.

Putting a feature class into versioning

  1. Upgrade ArcGIS to 10.9. Fix all the things this breaks.
  2. Try, with existing SQL Server. Discover that SQL Server we installed with ArcGIS 10.4 (or so) is TOO OLD.
  3. Switch to another database on a newer server, one that's maintained.
  4. In meantime, ArcGIS Pro 2.9 came out. Install that.
  5. Discover 2.9 requires a new license manager. Install it, corrupt existing licenses, call Esri. (This takes all concurrent licenses offline for a few hours.)
  6. Try again. I am working with my "repeater sites" feature class.
  7. In Pro (now at 2.9!) make a connection to the db and import the feature class.
  8. Remove the layer importing automatically added to the current map for you without asking, because it creates a schema lock.
  9. Enable Versioning + Branch. (Catalog->Databases->Properties->Manage)
  10. Add global ids to repeater_sites. Looks like this will happen in Pro now when I enable Branch Versioning.
  11. Enable editor tracking. This is also part of Pro.
  12. Sadly time will be in UTC. Option for local time is disabled with Branch Versioning.
  13. Quit and restart ArcGIS Pro at this point, because it's doing the things where every tool is "zoom to infinity".
    1. Restarting does not help, it's still stuck. Ha ha ha so fun!! It's the Esri webroot anti-virus bug!!
    2. Pound on the keyboard until the problem goes away. I am not kidding. This is the solution.
  14. Change database connection from catalog too, not sure what this does but it seems important.


Okay pressing on, glue the Portal and the SQL Server together, also known as Manage Registered Data Stores

THERE IS A BUG HERE THAT COST ME MOST OF TODAY. THIS PROCESS CREATES A CONNECTION STRING THAT YOU CANNOT EDIT THAT IS WRONG.

Do NOT go to Share tab, and "Data Stores". This is USELESS because it will only create traditional version connection and that won't work here.

Connection strings

  • Created by official process, does not work:
SERVER=cc-thesql;INSTANCE=sde:sqlserver:cc-thesql;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=cc-thesql;DATABASE=gis_sandbox;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS
  • Works:
SERVER=cc-thesql;INSTANCE=sde:sqlserver:cc-thesql;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=cc-thesql;DATABASE=gis_sandbox;USER=sde;AUTHENTICATION_MODE=DBMS;BRANCH=sde.DEFAULT

Instead attempt to publish the layer, which fails because your database is not registered. Then click on the ellipsis next to error 00231 and select "Register Data Source With Server".

  1. Select "Portal Items" (the default)
  2. "Add"
    1. Meaningful title like "gis_sandbox" which is also the database name in my case.
    2. A good tag, like "Test"
    3. A Portal folder like "GIS_Sandbox"
    4. The database connection will be "SQL Server", and use database authentication with user "sde" and your password.
    5. Set "Share with" which in my case is "GIS Team"
    6. It should figure out the name of your one and only server. Pick it and do "Validate"
    7. "Create" (or later on you can do changes and use "Save")
    8. I can go into Portal now and see a Data Store object right where I expected it.. in a new folder called GIS_Sandbox.
  3. Create a web layer
    1. In the Map Properties, under General, turn on "Allow assignment of unique numeric IDs for sharing web layers.
    2. In the Edit tab, make sure editing is turned off.
    3. Pick a layer and use "Share As Web Layer". I used my "points of interest".
    4. It's going to be a Map Image layer, with Feature access enabled.
    5. Under "Configuration" select Version Management and select a Dedicated Instance, not Shared.
  1. Create a Branch Version

I used second method to create a new version, the Versioning Tab.

Options for publishing services

Q. I don't really want to publish each layer as a separate services, what happens if I publish an entire map and set feature access on it?

A. You won't be able to edit features. It creates one feature service that has 4 layers in it. It also still publishes the Map Image Layer with 4 layers in it. (I don't know why I want the MIL, all I want is the feature layers.) There will be feature access for each layer but it will be published in Server as a single service.

Q. How can I see what versions are available and use them on the web? For instance show a version that has Proposed Repeater Sites in it. Not a separate service just a version of the Repeater Sites feature layer with some new repeaters in it. Then I could share the layer out on a web map and get feedback before committing the sites.

A. ?

Q. Can I see more than one version on the map at the same time?

Resources

In the Esri training site there is one 62 minute video called "Version Management with ArcGIS" that you can watch that gives a pretty good overview at the start then dives in way too deep. Skip the middle and go for the Q/A at the end.

Version management API (ref doc)

Blogs

ArcGIS Enterprise blog

Data Management blog

Managing your Branch Versions in Experience Builder

To Branch or Not to Branch

Branch Versioning: Setting the Stage

Version administrator for branch versioned data