|
POST
|
@RobynSnookCCB, the solution is configured with custom filter expression on the layer in the view. This kind of expression can't be configured through the UI. The easiest way to replicate it would be use a tool like ArcGIS Assistant to edit the web map and update the "definitionExpression" of the layer to be something like below. In the example below endtime is the name of a date field in the service. endtime IS NULL OR endtime >= CURRENT_TIMESTAMP
... View more
03-30-2022
02:09 PM
|
1
|
0
|
1301
|
|
IDEA
|
Great suggestion, we will look into this for a future release.
... View more
03-23-2022
06:14 AM
|
0
|
0
|
2088
|
|
POST
|
The Swap Parity tool like other gp tools honors the selection set on a layer. If you have multiple layers in the map with the same name you are likely selecting the layer with no selection and as a result is running for all roads in the layer. The easiest fix would be to give them unique names. Alternatively, you can drag/drop the layer from the Contents pane into the parameter of the gp tool, this will ensure you are selecting the correct layer from the map.
... View more
03-22-2022
11:07 AM
|
0
|
0
|
1143
|
|
POST
|
@CochranBob, we were able to find the issue. It appears that the logic for Cut changed at 2.9 and rather than returning an empty array when the feature was not cut, it is returning 1 feature, the original geometry. So it is a fairly easy fix, on line 61 rather than checking if their are 0 features in the array, check if there are less than 2 features. See the screenshot below.
... View more
02-10-2022
11:58 AM
|
3
|
8
|
4707
|
|
POST
|
@CochranBob, I was able to reproduce this issue started with 2.9. It seems to occur if the road you sketch overlaps a road or touches more than one road. If it just touches one road the rule runs succesfully. We are looking into this now and will respond back with our findings and potential fixes to the rule.
... View more
02-10-2022
07:43 AM
|
0
|
9
|
4715
|
|
POST
|
Congrats Joe! Appreciate all the feedback you have given on the address data management solution, it has definitely helped to improved the overall solution.
... View more
12-17-2021
02:05 PM
|
0
|
0
|
3762
|
|
POST
|
Hi @SuzanneWhitcomb, my recommendation would be to grab the latest release of the Address Data Management solution. There have been several significant improvements, but we also moved away from the Road Name Index because there were a few issues with it. We still use the Master Street Name table, just use the values in it in a different way.
... View more
12-14-2021
10:08 AM
|
1
|
1
|
1043
|
|
POST
|
@JoshSaad1 In versions 2.0 of the Address Data Management solution you can now define the same road name in multiple municipalities, in fact this is recommended. In addition, if a road has a different municipality on the left and right side of the road it should be defined uniquely for each municipality in the Master Road Names table. https://doc.arcgis.com/en/arcgis-solutions/latest/reference/introduction-to-address-data-management.htm
... View more
11-22-2021
06:55 AM
|
0
|
3
|
3969
|
|
POST
|
@JoshSaad1, We just released version 2.0 of the Address Data Management solution which includes several new features. We also addressed this issue by moving from a domain to a constraint rule on the roads and site addresses. As a result, updating the Master Road Names table no longer requires a schema change to update the domain. The constraint rule configured on the roads and addresses enforces that a road name entered must be defined in the Master Road Names table. https://doc.arcgis.com/en/arcgis-solutions/latest/reference/introduction-to-address-data-management.htm
... View more
11-22-2021
06:52 AM
|
2
|
1
|
3129
|
|
IDEA
|
We implemented in version 2.0 of the Address Data Management solution: https://doc.arcgis.com/en/arcgis-solutions/latest/reference/introduction-to-address-data-management.htm The Pro Project now includes a task and a construction tool that you can use to split one or more roads by sketching along a boundary. When split the address ranges on the roads will be update just as they are when a new road is constructed.
... View more
11-22-2021
06:49 AM
|
0
|
0
|
3207
|
|
POST
|
Hi @JackiePhipps, unfortunately there is no way to do this in Citizen Problem Reporter. Your use case is very interesting and I can certainly see how this would be a valuable enhancement. We are working on an update of the Citizen Problem Reporter solution and we will definitely consider this enhancement in the update.
... View more
08-10-2021
02:02 PM
|
1
|
0
|
1274
|
|
IDEA
|
Hi @Joshua-Young, I am working on this for the next update of the Address Data Management solution tentatively scheduled for later this year.
... View more
08-03-2021
12:18 PM
|
0
|
0
|
3527
|
|
POST
|
Hi Greg, Last week we released an update to the ArcGIS Solutions app in ArcGIS Online that should resolve this issue. Please try deploying Citizen Problem Reporter to your organization again and let us know if you are still encountering failures. -Chris
... View more
07-06-2021
06:14 AM
|
0
|
0
|
1592
|
|
POST
|
Hi Kyle, That makes a lot of sense, that updated expression should do it for them then. I also wanted to connect @AndyShoemaker with you. He is on my team and is working on an update to the My Trash Services solution. We were also considering adding a Hub site with the solution and potentially workflows around Bulk Trash Pickup. It would be great if he could pick your brain on some of the requirements you have learned from your customers for this solution to see how that aligns with the requirements we have been hearing. Thanks, -Chris
... View more
06-25-2021
05:46 AM
|
1
|
0
|
5268
|
|
POST
|
Hi Kyle, Give the update expression below a shot. In this I updated the holidays variable to be a dictionary, where the key is the what should be down for the holiday and the value is the list of holidays that apply to that option. So you can see, in the code below for the holidays you specified the next pickup will either be the next Thursday, or occur at the Next Schedule Pickup. The only thing this script doesn't account for now is Christmas and New Years are 1 week apart. What is the expectation for these holidays when the pickup date falls on Christmas the Next Scheduled Pickup would be New Years Day. Would you want the next pickup to be a week after New Years then? /*If pickup occurs weekly, specify 1.
If every other week specify 2, etc.*/
var pickupWeekInterval = 1;
/*Specify a date in the past in which pickup occurred.
This is used in the case where pickup doesn't occur every week
to determine the weeks where pickup is occurring.*/
var firstPickupWeek = Date('2017-01-01');
/*If the pickup service isn't available year-round
specify the first and last day of the season that pickup will occur, [[Start Month, Start Day], [[End Month, End Day]]*/
var openSeason = [[1,1],[12,31]]
/*Specify if the next scheduled pickup day falls on a holiday, when will the next actual pickup be.
"Next Weekday" - The pickup will occur on the next weekday after the holiday
"Next Day" - The pickup will occur on the next day after the holiday
"Next Day of Week - 4" - The pickup will occur on the next day of the week (Sunday = 0, Saturday = 6)
"Next Scheduled Pickup" - The pickup will occur on the next scheduled day after the holiday*/
/*Specify any holidays where pickup will not occur, [Month, Day]
Specify any variable holidays where pickup will not occur, [Occurrence, Month, Day of the Week (Sunday = 0, Saturday = 6)]
These are holidays that don't fall on the same date every year, i.e. Memorial Day, Labor Day, Thanksgiving
[-1,5,1] corresponds to Memorial Day -> Last occurrence in May of a Monday
[1,9,1] corresponds to Labor Day -> 1st occurrence in September of a Monday
[4,11,4] corresponds to Thanksgiving -> 4th occurrence in November of a Thursday*/
var holidays = {
"Next Weekday": [],
"Next Day": [],
"Next Day of Week - 4": [[-1,5,1],[7,4],[1,9,1]],
"Next Scheduled Pickup": [[1,1],[4,11,4],[12,25]]
}
var pickupDays = [];
var pickupDaysFields = [$feature.SUNDAY, $feature.MONDAY, $feature.TUESDAY,
$feature.WEDNESDAY, $feature.THURSDAY,
$feature.FRIDAY, $feature.SATURDAY]
for (var k in pickupDaysFields) {
if (pickupDaysFields[k] == 'Yes') {
pickupDays[Count(pickupDays)] = k;
}
}
if (Count(pickupDays) == 0)
return;
function calcRelativeHoliday(week, month, day, year) {
var holiday;
if (week < 0){
var lastDay = DateAdd(Date(year, month + 1, 1), -1, 'days');
var dayOfWeek = Weekday(lastDay);
var dayDiff = day - dayOfWeek;
if (dayDiff > 0)
dayDiff -= 7;
holiday = DateAdd(lastDay, dayDiff + ((week + 1) * 7), 'days');
}
else{
var firstDay = Date(year, month, 1);
var dayOfWeek = Weekday(firstDay);
var dayDiff = day - dayOfWeek;
if (dayDiff < 0)
dayDiff += 7;
holiday = DateAdd(firstDay, dayDiff + ((week - 1) * 7), 'days');
}
return holiday;
}
function getNextPickupDay(fromDate) {
var currentDay = Weekday(fromDate);
var pickupOffset = 0;
if (pickupWeekInterval > 1){
var weekDif = DateDiff(DateAdd(fromDate, 0 - currentDay, 'days'),
DateAdd(firstPickupWeek, 0 - Weekday(firstPickupWeek), 'days'),
'days') / 7;
weekDif = weekDif % pickupWeekInterval;
if (weekDif > 0)
pickupOffset = pickupWeekInterval - weekDif;
}
var difDays;
var nextPickupDay;
if (pickupOffset > 0) {
nextPickupDay = pickupDays[0];
difDays = nextPickupDay - currentDay;
difDays += (7 * pickupOffset);
}
else {
for(var k in pickupDays) {
if (pickupDays[k] >= currentDay) {
nextPickupDay = pickupDays[k];
break;
}
}
if (IsEmpty(nextPickupDay))
nextPickupDay = pickupDays[0];
difDays = nextPickupDay - currentDay;
if (nextPickupDay < currentDay)
difDays += (7 * pickupWeekInterval);
}
return DateAdd(fromDate, difDays, 'days');
}
function getHolidays(fromDate) {
var holidayDates = {};
for (var k in holidays) {
var dates = [];
for (var d in holidays[k]) {
if (Count(holidays[k][d]) == 2) {
var holiday = Date(Year(fromDate), holidays[k][d][0] -1, holidays[k][d][1]);
if (holiday < fromDate) {
holiday = Date(Year(fromDate) + 1, holidays[k][d][0] -1, holidays[k][d][1]);
}
dates[d] = holiday;
}
else {
var x = holidays[k][d];
var holiday = calcRelativeHoliday(x[0], x[1]-1, x[2], Year(fromDate));
if (holiday < fromDate) {
holiday = calcRelativeHoliday(x[0], x[1]-1, x[2], Year(fromDate) + 1);
}
dates[d] = holiday;
}
}
holidayDates[k] = dates;
}
return holidayDates;
}
function validateSeasonPickup(pickupDate) {
var startSeasonMonth = openSeason[0][0]-1;
var startSeasonDay = openSeason[0][1];
var endSeasonMonth = openSeason[1][0]-1;
var endSeasonDay = openSeason[1][1];
if (Date(Year(pickupDate), startSeasonMonth, startSeasonDay) > Date(Year(pickupDate), endSeasonMonth, endSeasonDay)) {
if (pickupDate < Date(Year(pickupDate), startSeasonMonth, startSeasonDay) && pickupDate > Date(Year(pickupDate) - 1, endSeasonMonth, endSeasonDay))
pickupDate = getNextPickupDay(Date(Year(pickupDate), startSeasonMonth, startSeasonDay))
}
else {
if (pickupDate < Date(Year(pickupDate), startSeasonMonth, startSeasonDay))
pickupDate = getNextPickupDay(Date(Year(pickupDate), startSeasonMonth, startSeasonDay));
else if (pickupDate > Date(Year(pickupDate), endSeasonMonth, endSeasonDay))
pickupDate = getNextPickupDay(Date(Year(pickupDate) + 1, startSeasonMonth, startSeasonDay));
}
return pickupDate;
}
function validateHolidayPickup(pickupDate, holidayDates) {
for(var k in holidayDates) {
for (var d in holidayDates[k]) {
if (pickupDate == holidayDates[k][d]) {
if (k == "Next Scheduled Pickup") {
pickupDate = getNextPickupDay(DateAdd(pickupDate, 1, 'days'));
}
else if (k == "Next Day") {
pickupDate = DateAdd(pickupDate, 1, 'days');
}
else if (k == "Next Weekday") {
var currentDay = Weekday(pickupDate);
if (currentDay > 4) {
pickupDate = DateAdd(pickupDate, 8 - currentDay, 'days');
}
else {
pickupDate = DateAdd(pickupDate, 1, 'days');
}
}
else if (Find('Next Day of Week', k) > -1) {
var dayOfWeek = Number(Right(k, 1));
var currentDay = Weekday(pickupDate);
if (currentDay > dayOfWeek) {
pickupDate = DateAdd(pickupDate, (dayOfWeek + 7) - currentDay, 'days');
}
else {
pickupDate = DateAdd(pickupDate, dayOfWeek-currentDay, 'days');
}
}
break;
}
}
}
return pickupDate
}
var nextPickup = getNextPickupDay(Today());
nextPickup = validateSeasonPickup(nextPickup);
nextPickup = validateHolidayPickup(nextPickup, getHolidays(nextPickup));
return Text(nextPickup, 'dddd, MMMM D');
... View more
06-22-2021
12:12 PM
|
0
|
4
|
5282
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 06-16-2026 06:03 AM | |
| 1 | 03-05-2026 06:12 AM | |
| 1 | 02-06-2026 09:24 AM | |
| 1 | 11-07-2025 07:59 AM | |
| 1 | 11-06-2025 07:04 AM |
| Online Status |
Offline
|
| Date Last Visited |
Friday
|