Hello community, I'm new here. I've the next script that I want to use in a Dashboard:
// Cargar las capas desde el datastore
var intervenciones = FeatureSetByPortalItem(
Portal("https://gadmilagro-cpuot.maps.arcgis.com"),
"dc16b23068eb4c58bd6624cf1d3a4c3c",
0,
["Costo_Total"]
);
var ejes_viales = FeatureSetByPortalItem(
Portal("https://gadmilagro-cpuot.maps.arcgis.com"),
"6031351b836f461e823f8571e60cf840",
0,
["Costo_Visible"]
);
// Validar si ambas capas están vacías
if (IsEmpty(intervenciones) && IsEmpty(ejes_viales)) {
Console("Ambas capas están vacías.");
return 0;
}
// Calcular la suma de los valores en cada capa
var suma_intervenciones = 0;
var suma_ejes = 0;
if (!IsEmpty(intervenciones)) {
var costo_total_values = Filter(intervenciones, "Costo_Total IS NOT NULL");
suma_intervenciones = DefaultValue(Sum(costo_total_values, "Costo_Total"), 0);
Console("Suma de intervenciones: " + suma_intervenciones);
}
if (!IsEmpty(ejes_viales)) {
var costo_visible_values = Filter(ejes_viales, "Costo_Visible IS NOT NULL");
suma_ejes = DefaultValue(Sum(costo_visible_values, "Costo_Visible"), 0);
Console("Suma de ejes viales: " + suma_ejes);
}
// Retornar la suma total de ambas capas
return suma_intervenciones + suma_ejes;
But, when I want to choice de expression in ArcGIS Dashboard, it shows the following message: "Can't run Arcade script"
Solved! Go to Solution.
A Data Expression must always return a FeatureSet, not a text string.
// Cargar las capas desde el datastore
var intervenciones = FeatureSetByPortalItem(
Portal("https://gadmilagro-cpuot.maps.arcgis.com"),
"dc16b23068eb4c58bd6624cf1d3a4c3c",
0,
["Costo_Total"]
);
var ejes_viales = FeatureSetByPortalItem(
Portal("https://gadmilagro-cpuot.maps.arcgis.com"),
"6031351b836f461e823f8571e60cf840",
0,
["Costo_Visible"]
);
var output = 0;
// Validar si ambas capas están vacías
if (IsEmpty(intervenciones) && IsEmpty(ejes_viales)) {
Console("Ambas capas están vacías.");
//return 0;
} else {
// Calcular la suma de los valores en cada capa
var suma_intervenciones = 0;
var suma_ejes = 0;
if (!IsEmpty(intervenciones)) {
var costo_total_values = Filter(intervenciones, "Costo_Total IS NOT NULL");
suma_intervenciones = DefaultValue(
Sum(costo_total_values, "Costo_Total"),
0
);
Console("Suma de intervenciones: " + suma_intervenciones);
}
if (!IsEmpty(ejes_viales)) {
var costo_visible_values = Filter(ejes_viales, "Costo_Visible IS NOT NULL");
suma_ejes = DefaultValue(Sum(costo_visible_values, "Costo_Visible"), 0);
Console("Suma de ejes viales: " + suma_ejes);
output = suma_intervenciones + suma_ejes;
}
}
var theDict = {
fields: [{ name: "Suma", type: "esriFieldTypeDouble" }],
geometryType: "",
features: [{ attributes: { Suma: output } }]
};
return FeatureSet(theDict);
A Data Expression must always return a FeatureSet, not a text string.
// Cargar las capas desde el datastore
var intervenciones = FeatureSetByPortalItem(
Portal("https://gadmilagro-cpuot.maps.arcgis.com"),
"dc16b23068eb4c58bd6624cf1d3a4c3c",
0,
["Costo_Total"]
);
var ejes_viales = FeatureSetByPortalItem(
Portal("https://gadmilagro-cpuot.maps.arcgis.com"),
"6031351b836f461e823f8571e60cf840",
0,
["Costo_Visible"]
);
var output = 0;
// Validar si ambas capas están vacías
if (IsEmpty(intervenciones) && IsEmpty(ejes_viales)) {
Console("Ambas capas están vacías.");
//return 0;
} else {
// Calcular la suma de los valores en cada capa
var suma_intervenciones = 0;
var suma_ejes = 0;
if (!IsEmpty(intervenciones)) {
var costo_total_values = Filter(intervenciones, "Costo_Total IS NOT NULL");
suma_intervenciones = DefaultValue(
Sum(costo_total_values, "Costo_Total"),
0
);
Console("Suma de intervenciones: " + suma_intervenciones);
}
if (!IsEmpty(ejes_viales)) {
var costo_visible_values = Filter(ejes_viales, "Costo_Visible IS NOT NULL");
suma_ejes = DefaultValue(Sum(costo_visible_values, "Costo_Visible"), 0);
Console("Suma de ejes viales: " + suma_ejes);
output = suma_intervenciones + suma_ejes;
}
}
var theDict = {
fields: [{ name: "Suma", type: "esriFieldTypeDouble" }],
geometryType: "",
features: [{ attributes: { Suma: output } }]
};
return FeatureSet(theDict);