Arcadeを使ってValveフィーチャを異なるクラスに分類しようとしていますが、プラットフォームによって問題が発生しています。次のスクリプトはArcProでは問題なく動作します(31,536,000,000は1年分のおおよそのミリ秒数で、このコードを使うと、1年以上メンテナンスされていないValveの色が数分以内に適切に変わります):

このコードをArcProで実行すると、次の結果になります(壊れたValveはProで動作することを示すために表示しています。壊れたValveと紛失したValveのシンボル表示はAGOLでも機能しますが、Proで変更が反映されるようにデータはまだ更新されていません):

AGOLウェブアプリでは次のようになります。コードは<null>値ではなく、現在の日付に基づいて経過時間だけを分類しているようです。繰り返しになりますが、壊れたValveと紛失したValveについては動作します。ただし、凡例にはすべてのシンボルが表示されます。
iPadとAndroidのモバイル端末でCollectorとExplorerを使ってコードをテストしましたが、デフォルトのシンボル以外は表示されません。ウェブアプリはモバイル端末でもPCと同じシンボルを表示しますが、ウェブアプリではポイントを収集していません。収集にはiPadに接続したArrow GPSを使っており、更新するためにアプリを切り替えるのは現実的ではありません。
Androidで表示されるデフォルトのシンボル(凡例には個別のクラスが残っています):


アドバイスやご協力をいただけると助かります。簡単に編集できるよう、コードを下に貼り付けました。コードを書き始めたばかりで、ダウンロードして使えるような、収集機能を備えたより高度なアプリを作る知識はまだありません。よろしくお願いします。同じように、年次メンテナンスの期間を長く設定できる方法を探している方のお役に立てれば幸いです。
Collector Arcade Arcade式 Arcadeシンボル Arcade属性式 #arcade ArcPro #AGOL 長期間 #time #year #annual #annualmaintenance
// まず、壊れたValveまたは紛失したValveを判定するためのパラメーターを設定します。
var class
If ($feature.BROKEN == "YES") {
class = "壊れたValve";
} else if ($feature.FOUND == "LOST") {
class = "紛失";
} else {
// この分類では、メンテナンス時期に基づいて異なるクラスを設定します。シンボルは通常の方法で調整できます。
var startDate = Date($feature.DATE_OPERATION_CURRENT);
var endDate = Date(Today ());
var change = DateDiff(endDate, startDate, 'value');
var result = When (change > 31536000000, "期限超過", change <= 31536000000, "現在", "データが最新ではありません")
return result
}
return class
// おそらく「var result」を「class」に置き換えられることは分かっています。