<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: arcade-bad-expression from valueExpression in UniqueValueRenderer in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275932#M80769</link>
    <description>&lt;P&gt;so, in my running code, passing $feature.START to "console()" logs an epoch ms value, whereas passing result from call to DateDiff() is logging null for some reason.&amp;nbsp; Obviously, I'm hosing that somehow, but I feel like I'm closing in on this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As far as I'm concerned, that "console()" function is the real breakthrough for me.&amp;nbsp; 50% of my debugging is in the debugger and the other half is with console.log() statements.&amp;nbsp; You can't put a breakpoint in an Arcade expression, and I had no clue how to log the intermediate results.&amp;nbsp; I felt like a turtle on my back.&amp;nbsp; I feel like I have a chance to figure this out now.&amp;nbsp; Thank you for showing me that.&lt;/P&gt;</description>
    <pubDate>Wed, 05 Apr 2023 19:11:27 GMT</pubDate>
    <dc:creator>lawsonkendall</dc:creator>
    <dc:date>2023-04-05T19:11:27Z</dc:date>
    <item>
      <title>arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275433#M80746</link>
      <description>&lt;P&gt;I have a UniqueValueRenderer assigned to a StreamLayer, assigning "valueExpression" as shown:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;valueExpression: `
               const featureStartTime = $feature.START;
               const now = Date.now();
               const TIME_TO_LIVE = 90000;
               const timeSinceStart = now - featureStartTime;
               const veResult = (timeSinceStart &amp;gt; TIME_TO_LIVE) ? 'expired' : $feature.GROUP_NAME;
               return veResult;
            `,&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;'START' and 'GROUP_NAME' are attributes of the features produced by the StreamLayer.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;My (Angular&amp;nbsp; 15) application compiles without errors or warnings, but as soon as features begin streaming, the browser console shows an error from "esri.support.arcadeOnDemand":&amp;nbsp;&amp;nbsp;'arcade-bad-expression', reporting UnexpectedIdentifier on the first line (declaration/assignment of "featureStartTime").&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;Can someone tell me what's wrong with my declaration of&amp;nbsp;&lt;FONT face="courier new,courier"&gt;featureStartTime?&lt;FONT face="helvetica"&gt;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&lt;FONT face="helvetica" size="3"&gt;Here is the error object, as copied from the browser console:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;{
    "declaredRootClass": "esri.arcade.lib.parsingerror",
    "name": "ParsingError",
    "code": "UnexpectedIdentifier",
    "index": 22,
    "line": 2,
    "column": 22,
    "len": 15,
    "data": {
        "value": "featureStartTime"
    },
    "description": "Unexpected identifier",
    "range": {
        "start": {
            "line": 2,
            "column": 21
        },
        "end": {
            "line": 2,
            "column": 37
        }
    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note about Accepted Solution:&amp;nbsp; I accepted the solution based on the fact that it got rid of the error I report above.&amp;nbsp; Here is the final implementation, fully functional thanks to invaluable tips from &lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/2839"&gt;@KenBuja&lt;/a&gt;&amp;nbsp;and &lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/115266"&gt;@AnneFitz&lt;/a&gt;&amp;nbsp;, in case anyone is trying to solve a similar problem:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;valueExpression: `
               var timeSinceStart = DateDiff(Now(), Date($feature.START));
               var veResult = IIf(timeSinceStart &amp;gt; ${TIME_TO_LIVE}, 'expired', $feature.GROUP_NAME);
               return veResult;
            `,&lt;/LI-CODE&gt;</description>
      <pubDate>Wed, 05 Apr 2023 22:31:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275433#M80746</guid>
      <dc:creator>lawsonkendall</dc:creator>
      <dc:date>2023-04-05T22:31:15Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275452#M80747</link>
      <description>&lt;P&gt;Arcade is a basic language and doesn't understand "const". It only uses "var" to declare a &lt;A href="https://developers.arcgis.com/arcade/guide/variables/" target="_self"&gt;variable&lt;/A&gt;. It doesn't understands the conditional statement as written. You'll have to replace that with an iif statement. I would recommend trying your expressions out in the &lt;A href="https://developers.arcgis.com/arcade/playground/" target="_self"&gt;playground&lt;/A&gt; to check your syntax&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var featureStartTime = $feature.START;
var now = Date.now();
var TIME_TO_LIVE = 90000;
var timeSinceStart = now - featureStartTime;
var veResult = IIF(timeSinceStart &amp;gt; TIME_TO_LIVE, 'expired', $feature.GROUP_NAME);
return veResult;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2023 19:28:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275452#M80747</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2023-04-04T19:28:19Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275474#M80748</link>
      <description>&lt;P&gt;I copy/pasted your version of function (replace const with var; replace ternary with IIf) and I am now getting&amp;nbsp;a new error:&lt;/P&gt;&lt;P&gt;"RemoteClient.js:1 [esri.views.2d.support.arcadeOnDemand] Feature arcade evaluation failed: Error: Execution error - Function not found".&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2023 19:53:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275474#M80748</guid>
      <dc:creator>lawsonkendall</dc:creator>
      <dc:date>2023-04-04T19:53:59Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275481#M80749</link>
      <description>&lt;P&gt;Everything&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/2839"&gt;@KenBuja&lt;/a&gt;&amp;nbsp;said is 100% right, thanks Ken! I also wanted to point out that Date.now() will not work in Arcade, instead use the built in Arcade function &lt;A href="https://developers.arcgis.com/arcade/function-reference/date_functions/#now" target="_self"&gt;Now()&lt;/A&gt;&amp;nbsp;. Also instead of subtracting the dates, I would use the built in &lt;A href="https://developers.arcgis.com/arcade/function-reference/date_functions/#datediff" target="_self"&gt;DateDiff()&lt;/A&gt; function. Hope this helps!&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2023 19:58:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275481#M80749</guid>
      <dc:creator>AnneFitz</dc:creator>
      <dc:date>2023-04-04T19:58:15Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275487#M80750</link>
      <description>&lt;P&gt;I also forgot to add that "now" is a &lt;A href="https://developers.arcgis.com/arcade/guide/reserved/" target="_self"&gt;reserved word&lt;/A&gt; and shouldn't be used as a variable name&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2023 20:04:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275487#M80750</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2023-04-04T20:04:04Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275535#M80751</link>
      <description>&lt;P&gt;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/2839"&gt;@KenBuja&lt;/a&gt;&amp;nbsp; &lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/115266"&gt;@AnneFitz&lt;/a&gt;&amp;nbsp; -- Your combined suggestions got me past the errors that were being logged to the console.&amp;nbsp; I'm still not seeing the "expired" result being returned, even though I know I have expired features in the layer, but that's another problem.&amp;nbsp; You gave me the answer to fix the error I was seeing.&amp;nbsp; Thank you both very much.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As an aside, is there any way to console.log what the renderer is returning for "value" for any given feature?&amp;nbsp; I know I can't put a console.log inside of the valueExpression.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2023 21:33:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275535#M80751</guid>
      <dc:creator>lawsonkendall</dc:creator>
      <dc:date>2023-04-04T21:33:29Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275730#M80763</link>
      <description>&lt;P&gt;I used this script in the Playground to get "expired", using a Popup profile with its available fields. In the Playground, you can use &lt;A href="https://developers.arcgis.com/arcade/function-reference/debugging_functions/#console" target="_self"&gt;Console&lt;/A&gt; to see intermediate variables.&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var featureStartTime = $feature.LASTUPDATE;
var TIME_TO_LIVE = 90000;
var timeSinceStart = DateDiff(Now(), featureStartTime);
console(timeSinceStart, DateDiff(Now(), featureStartTime, "minutes"))
var veResult = IIF(timeSinceStart &amp;gt; TIME_TO_LIVE, 'expired', $feature.LASTEDITOR);
return veResult;&lt;/LI-CODE&gt;&lt;P&gt;Note that anything more than about a minute and a half would be expired.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2023 13:29:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275730#M80763</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2023-04-05T13:29:10Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275932#M80769</link>
      <description>&lt;P&gt;so, in my running code, passing $feature.START to "console()" logs an epoch ms value, whereas passing result from call to DateDiff() is logging null for some reason.&amp;nbsp; Obviously, I'm hosing that somehow, but I feel like I'm closing in on this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As far as I'm concerned, that "console()" function is the real breakthrough for me.&amp;nbsp; 50% of my debugging is in the debugger and the other half is with console.log() statements.&amp;nbsp; You can't put a breakpoint in an Arcade expression, and I had no clue how to log the intermediate results.&amp;nbsp; I felt like a turtle on my back.&amp;nbsp; I feel like I have a chance to figure this out now.&amp;nbsp; Thank you for showing me that.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2023 19:11:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275932#M80769</guid>
      <dc:creator>lawsonkendall</dc:creator>
      <dc:date>2023-04-05T19:11:27Z</dc:date>
    </item>
    <item>
      <title>Re: arcade-bad-expression from valueExpression in UniqueValueRenderer</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275945#M80770</link>
      <description>&lt;P&gt;I see the problem.&amp;nbsp; Now() returns Date object, formatted according to locale, whereas $feature.START is a number -- epoch ms.&amp;nbsp; DateDiff() only takes Date objects for it's arguments, so I need to turn&amp;nbsp;$feature.START into a Date before passing it to DateDiff().&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2023 19:19:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/arcade-bad-expression-from-valueexpression-in/m-p/1275945#M80770</guid>
      <dc:creator>lawsonkendall</dc:creator>
      <dc:date>2023-04-05T19:19:13Z</dc:date>
    </item>
  </channel>
</rss>

