I called Tech Support a couple months later and luckily talked to the most helpful guy who wrote this py script in a couple hours. I don't think ESRI "gives" this kind of help anymore. I can't put my hands on the token documentation. I put this script in a sched task and it runs every 5 mins during storm damage assessment. Good Luck. Allan
import urllib
import urllib2
import httplib
import json
##Token Generation Parameters
tokenUrl = 'https://www.arcgis.com/sharing/oauth2/token'
featureServiceURL = 'https://services5.arcgis.com/xxxxxxxxx/arcgis/rest/services/MyDamageAssessmentService2019/FeatureServer/0/calculate'
clientId = 'xxxxxxxxxxxx'
clientSecret = 'xxxxxxxxxxxxxxxxxxx'
##Calculate Parameters - Only calc if a property has been assessed PercentDam > 0
whereClause = 'PercentDam > 0'
updateExpression = [{"field":"EstDollarD","sqlExpression":"Dwlgval1*PercentDam*.01"}]
def sendRequest(url, parameters):
data = urllib.urlencode(parameters)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
return json.loads(response.read())
def generateToken():
tokenParameters = {'client_id': clientId, 'client_secret': clientSecret, 'grant_type':'client_credentials'}
jsonResponse = sendRequest(tokenUrl, tokenParameters)
token = jsonResponse["access_token"]
return token
def calculateValues(token):
calculateParameters = {'where':whereClause,'calcExpression':updateExpression,'sqlFormat':'standard','rollbackOnArithmaticError':'false','token':token, 'f':'json'}
jsonResponse = sendRequest(featureServiceURL, calculateParameters)
if jsonResponse['success'] == True:
print "Updated Feature Count: " + str(jsonResponse["updatedFeatureCount"])
else:
print "Calculate operation failed"
print jsonResponse
token = generateToken()
calculateValues(token)