Evaluate
- URL:https://<validationservice-url>/evaluate(POST only)
- Version Introduced:10.7
Description

An ArcGIS Data Reviewer server extension license is required when datasets contain Data Reviewer-based validation attribute rules.
Using the specified version and session ID, evaluate the rules associated with the specified features (using a selection set, geographic extent, or those features modified in a version) and create persisted error features in error tables.
Evaluation can be performed on different types of geodatabase rules (controlled by the evaluationType):
- Topology rules
- Validation and batch calculation attribute rules
Request parameters
Parameter | Details |
---|---|
f | Description: Optional parameter representing the output format of the response. The default response format is html. Values: html | json |
gdbVersion | Description: Optional parameter specifying the name of the geodatabase version (the default is DEFAULT). Syntax: gdbVersion=<version> |
sessionId | Description: Optional parameter representing the token (guid) used to lock the version. If the calling client is editing a named version, the sessionId must be provided. If the client is editing DEFAULT, the version may not be locked and the sessionId should not be specified. Syntax: sessionId=<guid> |
evaluationArea | Description: Optional parameter representing the envelope of the area to validate. Note that this type of validation does not result in a change to the last evaluation moment in a version. |
changesInVersion | Description: Optional parameter representing whether to perform the evaluation on the features that have changed in the version (the default is false). This parameter does not apply to the DEFAULT version or when the evaluationType is topologyRules. The parameter does not apply when evaluating a topology (evaluationType = topologyRules). When set to true, the evaluationDate property for the version is updated. This is listed as a property for a version and can be accessed using the version resource and the versionInfos operation. Values: true | false |
selection | Description: Optional parameter representing a set of features to evaluate. This is an array of layers and the global IDs (or object IDs) of the features to evaluate. Selections are not applicable when the evaluationType is topologyRules. Values:
|
evaluationType | Description: An array of evaluation types. Values:
Example:
|
returnEdits | Description: Optional Boolean parameter that returns features edited due to feature evaluation. Results returned are organized in a layer-by-layer fashion. If returnEdits is set to true, each layer may have edited features returned in an editedFeatures object. The editedFeatures object returns full features including the original features prior to delete, the original and current features for updates and the current rows for inserts that may contain implicit changes (for example, as a result of a calculation rule). The response includes no editedFeatures and exceededTransferLimit = true if the count of edited features to return is more than the maxRecordCount. If clients are using this parameter to maintain a cache, they should invalidate the cache when exceededTransferLimit = true is returned. If the server encounters an error when generating the list of edits is the response, exceededTransferLimit = true is also returned. Edited features are returned in the spatial reference of the feature service as defined by the services spatialReferenceobject or by the spatialReference of the layers extent object. The default for this parameter is false. It is always set to true when evaluating topologyRules for a parcel fabric or topology. Values: true | false |
async | Description: Optional parameter, where if true, the request is processed as an asynchronous job, and a URL is returned that a client can visit to check the status of the job. The default is false. Values: true | false |
JSON Response syntax
JSON response (when async = false):
{
"moment" : <datetime>,
"exceededTransferLimit : <true | false>,
"serviceEdits" : [
{
"id" : <layerId>,
"editedFeatures" :
{
"adds" : [<currentFeature1>, <currentFeature2>],
"updates" : [
[<originalFeature3>, <currentFeature3>],
[<originalFeature4>, <currentFeature4>]
],
"deletes" : [<originalFeature5>, <originalFeature6>]
}
}
],
"evaluationStatistics": {
"rowsEvaluated": <integer>,
"elapsedTimeInSec": <integer>
"errorsIdentified": <integer>,
"errorsCleaned": <integer>
},
"errorsIdentified" : <integer>,
"success" : <true | false>,
"error" : { // only if success is false
"extendedCode" : <HRESULT>,
"message" : <error message>,
"details" : [ <detail> ]
}
}
JSON response (when async = true):
{
"statusUrl" : <url>
}
JSON response to the statusURL (when pending or in progress):
{
"status" : "<Pending | InProgress>",
"submissionTime" : <datetime>,
"lastUpdatedTime" : <datetime>
}
JSON response to the statusURL (when completed):
{
"moment" : <datetime>,
"exceededTransferLimit : <true | false>,
"serviceEdits" : [
{
"id" : <layerId>,
"editedFeatures" :
{
"adds" : [<currentFeature1>, <currentFeature2>],
"updates" : [
[<originalFeature3>, <currentFeature3>],
[<originalFeature4>, <currentFeature4>]
],
"deletes" : [<originalFeature5>, <originalFeature6>]
}
}
],
"evaluationStatistics": {
"rowsEvaluated": <integer>,
"elapsedTimeInSec": <integer>
"errorsIdentified": <integer>,
"errorsCleaned": <integer>
},
"errorsIdentified" : <integer>,
"status" : "Completed",
"submissionTime" : <datetime>,
"lastUpdatedTime" : <datetime>,
"success" : <true | false>,
"error" : { // only if success is false
"extendedCode" : <HRESULT>,
"message" : <error message>,
"details" : [ <detail> ]
}
}
Example usage
Evaluate the validationRules for the UNADMIN.CAROLINA version using the evaluate operation.
Request URL and parameters:
https://myserver.esri.com/server/rest/services/LandUse/ValidationServer/evaluate
f=json
gdbVersion=UNADMIN.CAROLINA
sessionID={E55FFA19-406E-46D6-847E-BD512A1F3756}
evaluationArea=
{
"xmin": -131.08784025268154,
"ymin": 22.217939537429517,
"xmax": -56.191114071817739,
"ymax": 53.0329937018149,
"spatialReference": {
"wkid": 4326,
"latestWkid": 4326
}
}
changesInVersion=false
evaluationType=["validationRules"]
async=true
returnEdits=true
JSON response (async=true)
{
"moment": 1558369578880,
"evaluationStatistics": {
"rowsEvaluated": 209,
"elapsedTimeInSeconds": 2
"errorsIdentified": 199,
"errorsCleared": 6,
},
"errorsIdentified" : 199,
"success": true,
"status": completed,
"submissionTime": 1656544895000,
"lastUpdatedTime": 1656544895000
}