Calculate (Feature Service/Layer)


The calculate operation is performed on a feature service layer resource. It updates the values of one or more fields in an existing feature service layer based on SQL expressions or scalar values. The calculate operation can only be used if the supportsCalculate property of the layer is true.

Neither the Shape field nor system fields can be updated using calculate. System fields include ObjectId and GlobalId.

See Calculate a field for more information on supported expressions.

For feature services that reference enterprise geodatabase data, the calculate operation is only supported for data that is non-versioned and non-archived.

Request parameters


Description: A where clause can be used to limit the updated records. Any legal SQL where clause operating on the fields in the layer is allowed.


where=POP2000 > 350000

where=CITY_NAME = 'Glendora'

If you are working with ArcGIS Server 10.4 or a subsequent version, the dateFieldsTimezoneID property of the feature service identifies the time zone all dates are stored in. If your where clause is referencing a date type field and you have dateFieldsTimezoneID set to a specific time zone, make sure your where clause issues the time in that specific time zone. For example, if you want to limit the records being updated to match 1 pm on February 9th, 2015, Pacific Standard Time, your where clause would be:

where=pacific_time_date_field = DATE '2015-02-09 13:00:00'

You can set the dateFieldsTimezoneID property in the ArcMap Service Editor, Parameters tab, when you publish the service. If you don't have dateFieldsTimezoneID set, be sure your where clause issues the time you are querying in UTC. The dateFieldsTimezoneID property does not apply to fields that were time enabled through the Layer Properties Time tab in ArcMap at the time of publishing.


Description: The array of field/value info objects that contain the field or fields to update and their scalar values or SQL expression. For more information on how to build expressions, see Calculate a field.

Syntax: "calcExpression":[{"field" : <fieldname>, "value" | "sqlExpression": <value> | "expression"},...]


"calcExpression":[{"field" : "Quality", "value" : 3}]

"calcExpression":[{"field" : "A", "sqlExpression" : "B*3"}]

If you are updating records in a date type field, be sure to issue the new date or time value in UTC. This is the case even if you have the dateFieldsTimezoneID property set and issue local time in your where clause.


As of 10.6.1, calcExpression can take null values.


Description: The SQL format for the calcExpression. The expression can take one of two formats. It can be either standard SQL92 (standard), or it can use the native SQL of the underlying datastore (native). The default is standard.

The SQL format native is supported only for admin users and when useStandardizedQuery=false.

Values: standard | native

Values for date type fields must always be specified in UTC.


Description: The response format. The default response format is html.

Values: html | json

JSON response syntax

   "success" : <true|false>,
   "updatedFeatureCount" : <count>

JSON response example