I have created an arcade expression to automatically populate the DueDate field for a point feature. When a point is assigned in workforce, I would like to run a calculate expression that searches for the nearest road and then populates the due date based on minimum maintenance standards (i.e. Class 1 must be fixed in 5 days, Class 2 in 10 days etc.):
var AssignedDate = $feature.assigneddate;
var line_fs = FeatureSetByName($datastore, 'Road');
line_fs = Intersects(line_fs, Buffer($feature, 15, "Meters"));
// Cycle through road segments & find the nearest one
var min_dist = 99999
var nearest_RoadClass = null
var geo = Geometry($feature)
for(var line in line_fs) {
var line_geo = Geometry(line)
var dist = Distance(geo, line_geo)
if(dist < min_dist) {
min_dist = dist
nearest_RoadClass = line.Class
}
if (IsEmpty(nearest_RoadClass)){
return null;
}
if (nearest_RoadClass == "Class 1"){
return DateAdd(AssignedDate, 5, 'days');
}
if (nearest_RoadClass == "Class 2"){
return DateAdd(AssignedDate, 10, 'days');
}
else return null;}
Can someone tell me why points nearest to a Class 6 road are sometimes assigned a due date rather than a null value?
