Hello,
I am trying to run a calculate field notebook on AGOL (the feature layer is a table). I've run the notebook code in ArcPro and it works, but having the below errors returning when trying to use the notebook online:
ExecuteError Traceback (most recent call last)
/tmp/ipykernel_284/520331681.py in <cell line: 2>()
1 arcpy.ImportToolbox
----> 2 arcpy.CalculateField_management( 3 in_table=EPD_Actions_and_Checklist_Id,
4 field="DaysOverdue",
5 expression="""var completed = $feature.DateCompleted
/opt/conda/lib/python3.9/site-packages/arcpy/management.py in CalculateField(in_table, field, expression, expression_type, code_block, field_type, enforce_domains)
6185 return retval
6186 except Exception as e:
-> 6187 raise e
6188
6189 gptooldoc('CalculateFields_management', None)
/opt/conda/lib/python3.9/site-packages/arcpy/management.py in CalculateField(in_table, field, expression, expression_type, code_block, field_type, enforce_domains)
6182 from arcpy.arcobjects.arcobjectconversion import convertArcObjectToPythonObject
6183 try:
-> 6184 retval = convertArcObjectToPythonObject(gp.CalculateField_management(*gp_fixargs((in_table, field, expression, expression_type, code_block, field_type, enforce_domains), True)))
6185 return retval
6186 except Exception as e:
/opt/conda/lib/python3.9/site-packages/arcpy/geoprocessing/_base.py in <lambda>(*args)
510 val = getattr(self._gp, attr)
511 if callable(val):
--> 512 return lambda *args: val(*gp_fixargs(args, True))
513 else:
514 return convertArcObjectToPythonObject(val)
ExecuteError: Failed to execute. Parameters are not valid.
ERROR 000732: Input Table: Dataset 7bb00f43e7bc49f4aa4e3e50b46de6cc does not exist or is not supported
Failed to execute (CalculateField).I know you can calculate field using Arcade straight into the table, however, I need this (and others) to run automatically.
Below is the code being used
from arcgis.gis import GIS
import arcpy
gis = GIS("home")
arcpy.ImportToolbox
arcpy.management.CalculateField(
in_table=EPD_Actions_and_Checklist_Id,
field="DaysOverdue",
expression="""var completed = $feature.DateCompleted
var startDate = Date($feature.TargetDate)
var endDate = Date(Now())
var daysoverdue = DateDiff(endDate, startDate, 'days')
if ($feature.Status == "Completed"){
return 0;
} else if (isempty(startDate)){
return 0;
} else if (isempty(completed)){
return daysoverdue;
}""",
expression_type="ARCADE",
code_block="",
field_type="TEXT",
enforce_domains="NO_ENFORCE_DOMAINS"
)
Any suggestions, that would be great.
If there is also a way in which I don't have to use an advanced notebook, that would also be great
I have enabled editing on the feature service layer and am using the advanced notebook.