Differences

Description

The differences operation allows you to review the edits that have been made to the current version. The differences, or edits made, in the default version can also be discovered between two moments. The output will provide the edits performed in each layer and return the changes in the following categories:

The differences operation is supported both synchronously and asynchronously.

Request parameters

Parameter

Details

f

Description: Optional parameter specifying the output format of the response. The default response format is html.

Values: html | json

sessionId

Description: The client-generated session ID (GUID). This parameter is required.

Syntax : sessionId = {3F2504E0-4F89-41D3-9A0C-0305E82C3301}

fromMoment

Description: Optional parameter specifying the moment of the version from which the differences will be obtained. This parameter returns the differences between the specified fromMoment and moment parameter values.

  • If this parameter is not specified, the differences operation returns the edits (inserts, updates, and deletes) at the value of the specified moment parameter by default.
  • This parameter is only supported on the default version. If this parameter is specified for a named branch, an error will be returned. The common ancestor moment is automatically used.

This parameter was introduced at ArcGIS Enterprise 10.9.

Syntax : fromMoment = 1603109596000

moment

Description: Optional parameter specifying the moment used for the version to obtain the differences. If this parameter is not specified, the current branch moment of the version will be used.

The input moment must be greater than the version's common ancestor moment. In an edit session with unsaved edits, using a moment larger than the version's current moment will also return differences in the edit session.

Syntax : moment = 1603109606000

resultType

Description: Optional parameter specifying the type of results that will be returned. The default result type is objectIds.

Values : objectIds | features

layers

Description: Optional parameter representing the array of layer IDs for which differences will be returned. If this parameter is not specified, the differences for all layers will be returned.

This parameter was introduced at ArcGIS Enterprise 10.9.1.

Syntax: layers = [<long>]

Example: layers = [6]

async

Description: If true, the request will be processed as an asynchronous job, and a URL will be returned that a client can visit to review the status of the job. The default is false.

Values: true | false

This parameter was introduced at ArcGIS Enterprise 10.9.1.

outSR

Description: Optional parameter specifying the output spatial reference.

Syntax: {wkid=<wkid>}

Example: outSR = {wkid=4326}

This parameter was introduced at ArcGIS Enterprise 11.1.

JSON Response syntax

JSON response (when async = false):

{
  "differences" : [
    {
      "layerId" : long,
      "inserts" : [ <objectId> ],
      "updates" : [ <objectId> ],
      "deletes" : [ <objectId> ]
    }
  ],
  "features" : [
    {
      "layerId" : long,
      "inserts" : [
        {
          "attributes" : {
            "OBJECTID" : 581,
            "SUBTYPE" : 3,
             . . .
            "SHAPE.STLength()" : 132.5
          },
          "geometry" : {
            "hasZ" : true,
            "hasM" : true,
            "paths" : [
              . . .
            ]
          }
        }
      ],
      "updates" : [
      ],
      "deletes" : [
      ]
    }
  ],
  "success" : <true | false>,
  "error" : { // only if success is false
    "extendedCode" : <HRESULT>,
    "message" : "<error message>",
    "details" : [ <detail> ]
  }
}

JSON response (when async = true):


{
  "statusUrl" : 
}

JSON response to the status URL (when pending or in progress):


{
  "status" : "",
  "submissionTime" : ,
  "lastUpdatedTime" : 
 }

Example usage

Use the differences operation to review the edits between a named version and the default version.

Request URL and parameters:

https://myserver.esri.com/server/rest/services/LandUse/VersionManagementServer/versions/24417758-0DBD-4EC3-95B0-467CAA47FC43/differences

f=json
sessionID={638ed440-b81f-406c-bd5d-757c91dbfd70}
resultType=objectids
async=false

JSON response:

{
 "differences": [
  {
   "layerId": 1,
   "updates": [
    21,
    30
   ]
  }
 ],
 "success": true
}