<?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: Test execution error: Execution error - Function not found. Verify test data. in ArcGIS Dashboards Questions</title>
    <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353212#M8760</link>
    <description>&lt;P&gt;I'm guessing this an Enterprise Portal dashboard?&amp;nbsp; It's likely things such as DateDiff() aren't present in your Arcade version.&lt;/P&gt;</description>
    <pubDate>Fri, 24 Nov 2023 19:51:35 GMT</pubDate>
    <dc:creator>DavidPike</dc:creator>
    <dc:date>2023-11-24T19:51:35Z</dc:date>
    <item>
      <title>Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353209#M8759</link>
      <description>&lt;P&gt;Okay so I have this code written for a data expression for an indicator element on my dashboard. The issue is that every time I try to run it, I get this error: "&lt;SPAN&gt;Test execution error: Execution error - Function not found. Verify test data." I'm not sure what function it is referring to or what I'm doing wrong.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Any help would be appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;// Define the feature set
var Dates = FeatureSetByPortalItem(
    Portal('https://regionofpeel.maps.arcgis.com'), 
    '5d0f25a7a3314686b526bab55653befb', 
    0
);

// Function to check if a string represents a valid date
function IsDate(dateString) {
    // Check if the date string is not null, undefined, or an empty string
    if (dateString == null || dateString == "") {
        return false;
    }

    // Attempt to create a Date object from the string using DateTime function
    var dateObject = Date(dateString);

    // Check if the created Date object is a valid date
    return !IsEmpty(dateObject);
}

var Dict = { 
    'fields': [ 
        {'name': 'WellAbandonmentDate', 'type': 'esriFieldTypeDate'},   
        {'name': 'DateReceived', 'type': 'esriFieldTypeDate'},
        {'name': 'WaitingTime', 'type': 'esriFieldTypeDouble'},  // New field for waiting time
    ],   
    'geometryType': '',    
    'features': []
};

var i = 0;
var totalWaitingTime = 0;
var maxWaitingTime = -Infinity;
var minWaitingTime = Infinity;

// Loop through records in the feature set
for (var record in Dates) {
    var wellAbandonmentDate = record['Date_abandonment'];
    var dateReceived = record['date_recieved'];

    // Check if both dates are valid
    if (IsDate(wellAbandonmentDate) &amp;amp;&amp;amp; IsDate(dateReceived)) {
        // Calculate waiting time in days using the DateDiff function
        var waitingTime = DateDiff(dateReceived, wellAbandonmentDate, 'days');

        // Update total, max, and min waiting times
        totalWaitingTime += waitingTime;
        maxWaitingTime = Max(maxWaitingTime, waitingTime);
        minWaitingTime = Min(minWaitingTime, waitingTime);

        // Add feature to Dict
        Dict.features.push({
            'attributes': {
                'WellAbandonmentDate': wellAbandonmentDate,
                'DateReceived': dateReceived,
                'WaitingTime': waitingTime
            }
        });

        i++;
    }
}

// Calculate average waiting time
var averageWaitingTime;
if (i &amp;gt; 0) {
    averageWaitingTime = totalWaitingTime / i;
} else {
    averageWaitingTime = null;
}

// Add average, max, and min waiting times to Dict fields
Dict.fields.push({'name': 'AverageWaitingTime', 'type': 'esriFieldTypeDouble'});
Dict.fields.push({'name': 'MaxWaitingTime', 'type': 'esriFieldTypeDouble'});
Dict.fields.push({'name': 'MinWaitingTime', 'type': 'esriFieldTypeDouble'});

// Loop through features
for (var j in Dict.features) {
    var featureData = Dict.features[j];
    
    // Add calculated values to the features
    featureData.attributes.AverageWaitingTime = averageWaitingTime;
    featureData.attributes.MaxWaitingTime = maxWaitingTime;
    featureData.attributes.MinWaitingTime = minWaitingTime;
}

return Dict;&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;</description>
      <pubDate>Fri, 24 Nov 2023 19:11:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353209#M8759</guid>
      <dc:creator>Jabousaw</dc:creator>
      <dc:date>2023-11-24T19:11:28Z</dc:date>
    </item>
    <item>
      <title>Re: Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353212#M8760</link>
      <description>&lt;P&gt;I'm guessing this an Enterprise Portal dashboard?&amp;nbsp; It's likely things such as DateDiff() aren't present in your Arcade version.&lt;/P&gt;</description>
      <pubDate>Fri, 24 Nov 2023 19:51:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353212#M8760</guid>
      <dc:creator>DavidPike</dc:creator>
      <dc:date>2023-11-24T19:51:35Z</dc:date>
    </item>
    <item>
      <title>Re: Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353222#M8761</link>
      <description>&lt;P&gt;You're using &lt;A href="https://developers.arcgis.com/arcade/function-reference/array_functions/#push" target="_self"&gt;Push&lt;/A&gt; incorrectly in several places. I've restructured your code a little bit and it returns the Dict.&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;// Define the feature set
var Dates = FeatureSetByPortalItem(
    Portal('https://regionofpeel.maps.arcgis.com'), 
    '5d0f25a7a3314686b526bab55653befb', 
    0
);

// Function to check if a string represents a valid date
function IsDate(dateString) {
    // Check if the date string is not null, undefined, or an empty string
    if (dateString == null || dateString == "") {
        return false;
    }

    // Attempt to create a Date object from the string using DateTime function
    var dateObject = Date(dateString);

    // Check if the created Date object is a valid date
    return !IsEmpty(dateObject);
}

var i = 0;
var totalWaitingTime = 0;
var maxWaitingTime = -Infinity;
var minWaitingTime = Infinity;

var features = [];

// Loop through records in the feature set
for (var record in Dates) {
    var wellAbandonmentDate = record['Date_abandonment'];
    var dateReceived = record['date_recieved'];

    // Check if both dates are valid
    if (IsDate(wellAbandonmentDate) &amp;amp;&amp;amp; IsDate(dateReceived)) {
        // Calculate waiting time in days using the DateDiff function
        var waitingTime = DateDiff(dateReceived, wellAbandonmentDate, 'days');

        // Update total, max, and min waiting times
        totalWaitingTime += waitingTime;
        maxWaitingTime = Max(maxWaitingTime, waitingTime);
        minWaitingTime = Min(minWaitingTime, waitingTime);

        // Add feature to Dict
        var feat = {
            'attributes': {
                'WellAbandonmentDate': wellAbandonmentDate,
                'DateReceived': dateReceived,
                'WaitingTime': waitingTime
            }
        );
        Push(features, feat)
        i++;
    }
}

// Calculate average waiting time
var averageWaitingTime;
if (i &amp;gt; 0) {
    averageWaitingTime = totalWaitingTime / i;
} else {
    averageWaitingTime = null;
}

var Dict = { 
    'fields': [ 
        {'name': 'WellAbandonmentDate', 'type': 'esriFieldTypeDate'},   
        {'name': 'DateReceived', 'type': 'esriFieldTypeDate'},
        {'name': 'WaitingTime', 'type': 'esriFieldTypeDouble'},  // New field for waiting time
        {'name': 'AverageWaitingTime', 'type': 'esriFieldTypeDouble'},
        {'name': 'MaxWaitingTime', 'type': 'esriFieldTypeDouble'},
        {'name': 'MinWaitingTime', 'type': 'esriFieldTypeDouble'}
    ],   
    'geometryType': '',    
    'features': features
};

// Loop through features
for (var j in Dict.features) {
    var featureData = Dict.features[j];
    
    // Add calculated values to the features
    featureData.attributes.AverageWaitingTime = averageWaitingTime;
    featureData.attributes.MaxWaitingTime = maxWaitingTime;
    featureData.attributes.MinWaitingTime = minWaitingTime;
}

return Dict;&lt;/LI-CODE&gt;&lt;P&gt;However, is your intent to just have one record for the maximum, minimum, and average waiting times for your indicator? All of the records in your dataset will have the same values for these three times.&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;</description>
      <pubDate>Fri, 24 Nov 2023 20:22:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353222#M8761</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2023-11-24T20:22:04Z</dc:date>
    </item>
    <item>
      <title>Re: Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353233#M8762</link>
      <description>&lt;P&gt;I'll have 3 separate indictors, one displaying maximum, minimum, and average waiting times, respectively since I don't think I can have 1 indicator showcases all 3 values. It's also easier to look at when having 3 separate indicators. Also, the code you provided ran but I don't think it outputted the correct information, as it just outputted a bunch of text and no numbers.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Jabousaw_1-1700858958676.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/87056iE054B2004A0AD48F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Jabousaw_1-1700858958676.png" alt="Jabousaw_1-1700858958676.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Jabousaw_0-1700858902297.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/87055iEA2F977F382A486E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Jabousaw_0-1700858902297.png" alt="Jabousaw_0-1700858902297.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Jabousaw_2-1700858976410.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/87057iB5009530FE0D5827/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Jabousaw_2-1700858976410.png" alt="Jabousaw_2-1700858976410.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Nov 2023 20:49:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353233#M8762</guid>
      <dc:creator>Jabousaw</dc:creator>
      <dc:date>2023-11-24T20:49:44Z</dc:date>
    </item>
    <item>
      <title>Re: Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353237#M8763</link>
      <description>&lt;P&gt;It pops up as one of the functions I can use and I rewrote the code to manually calculate the difference in time using conversions and it gave me the same error.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Nov 2023 21:04:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353237#M8763</guid>
      <dc:creator>Jabousaw</dc:creator>
      <dc:date>2023-11-24T21:04:17Z</dc:date>
    </item>
    <item>
      <title>Re: Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353238#M8764</link>
      <description>&lt;P&gt;You can use this code in each of your indicators&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;// Define the feature set
var Dates = FeatureSetByPortalItem(
    Portal('https://regionofpeel.maps.arcgis.com'), 
    '5d0f25a7a3314686b526bab55653befb', 
    0
);

// Function to check if a string represents a valid date
function IsDate(dateString) {
    // Check if the date string is not null, undefined, or an empty string
    if (dateString == null || dateString == "") {
        return false;
    }

    // Attempt to create a Date object from the string using DateTime function
    var dateObject = Date(dateString);

    // Check if the created Date object is a valid date
    return !IsEmpty(dateObject);
}

var i = 0;
var totalWaitingTime = 0;
var maxWaitingTime = -Infinity;
var minWaitingTime = Infinity;

var features = [];

// Loop through records in the feature set
for (var record in Dates) {
    var wellAbandonmentDate = record['Date_abandonment'];
    var dateReceived = record['date_recieved'];

    // Check if both dates are valid
    if (IsDate(wellAbandonmentDate) &amp;amp;&amp;amp; IsDate(dateReceived)) {
        // Calculate waiting time in days using the DateDiff function
        var waitingTime = DateDiff(dateReceived, wellAbandonmentDate, 'days');

        // Update total, max, and min waiting times
        totalWaitingTime += waitingTime;
        maxWaitingTime = Max(maxWaitingTime, waitingTime);
        minWaitingTime = Min(minWaitingTime, waitingTime);

        // Add feature to Dict
        var feat = {
            'attributes': {
                'WellAbandonmentDate': wellAbandonmentDate,
                'DateReceived': dateReceived,
                'WaitingTime': waitingTime
            }
        );
        Push(features, feat)
        i++;
    }
}

// Calculate average waiting time
var averageWaitingTime;
if (i &amp;gt; 0) {
    averageWaitingTime = totalWaitingTime / i;
} else {
    averageWaitingTime = null;
}
// Loop through features
for (var j in features) {
    var featureData = features[j];
    // Add calculated values to the features
    featureData.attributes.AverageWaitingTime = averageWaitingTime;
    featureData.attributes.MaxWaitingTime = maxWaitingTime;
    featureData.attributes.MinWaitingTime = minWaitingTime;
}

var Dict = { 
    'fields': [ 
        {'name': 'AverageWaitingTime', 'type': 'esriFieldTypeDouble'},
        {'name': 'MaxWaitingTime', 'type': 'esriFieldTypeDouble'},
        {'name': 'MinWaitingTime', 'type': 'esriFieldTypeDouble'}
    ],   
    'geometryType': '',    
    'features': [{
            'attributes': {
                'AverageWaitingTime': averageWaitingTime,
                'MaxWaitingTime': maxWaitingTime,
                'MinWaitingTime': minWaitingTime
            }
     }]
};
return FeatureSet((Dict))&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Nov 2023 21:08:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353238#M8764</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2023-11-24T21:08:39Z</dc:date>
    </item>
    <item>
      <title>Re: Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353247#M8765</link>
      <description>&lt;P&gt;Thank you, the code worked! However, it is giving me negative time values for average and minimum waiting times. I've tried adding conditions to the code to fix that but now I'm getting 0 for both the minimum and average waiting times. Do you have any suggestions on what could fix this?&lt;/P&gt;</description>
      <pubDate>Fri, 24 Nov 2023 21:47:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353247#M8765</guid>
      <dc:creator>Jabousaw</dc:creator>
      <dc:date>2023-11-24T21:47:17Z</dc:date>
    </item>
    <item>
      <title>Re: Test execution error: Execution error - Function not found. Verify test data.</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353485#M8772</link>
      <description>&lt;P&gt;Switch the order of the dates in the DateDiff function in line 37.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Nov 2023 14:32:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/test-execution-error-execution-error-function-not/m-p/1353485#M8772</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2023-11-27T14:32:58Z</dc:date>
    </item>
  </channel>
</rss>

