Hello,
I am trying to join 2 returned feature set from a group by function but ended up getting empty table with specified fields in it. ( I am implementing this in dashboard, data expression to power serial chart element, list ...ArcGIS enterprise 10.91)
pls have a look at the expression below
// read layer 1
var itemID = '123456789';
var fs_pipe = FeatureSetByPortalItem(Portal(p), itemID, 1, ['DRINKINGWATERSYSTEM','Shape__Length', 'INSTALLDATE', 'ASSETID','OBJECTID'], false);
//group layer 1
var fs_pipe_grouped = GroupBy(fs_pipe, ['DRINKINGWATERSYSTEM'],[
{ name: 'number_of_Pipes', expression: 'OBJECTID', statistic: 'COUNT'},
{name: 'Pipe_len_Sum', expression: 'Shape__Length', statistic: 'SUM'},
])
//read layer 2
var itemID = '987654321';
var fs_break = FeatureSetByPortalItem(Portal(p), itemID, 2, ['wsystem', 'pipe_length', 'breakid', 'year','objectid'], false);
//group layer 2
var fs_break_grouped = GroupBy(fs_break, ['wsystem'],[
{name:'breakCount', expression:'objectid', statistic:'COUNT'}])
// Create empty features array and feat object
var features = [];
var feat;
// Populate Feature Array
for (var b in fs_break_grouped) {
var tableID = b["wsystem"]
for (var q in Filter(fs_pipe_grouped, "DRINKINGWATERSYSTEM = @tableID")){
feat = {
attributes: {
wsystem: tableID,
Pipe_len_Sum: q["Pipe_len_Sum"],
breakCount: b["breakCount"],
}
};
Push(features, feat)
}
}
var joinedDict = {
fields: [
{ name: "wsystem", type: "esriFieldTypeString" },
{ name: "Pipe_len_Sum", type: "esriFieldTypeInteger" },
{ name: "breakCount", type: "esriFieldTypeInteger" },
],
'geometryType': '',
'features':features
};
return FeatureSet(Text(joinedDict));
result (empty featureSet)

My goal is once I get the joined table/ featureSet, then to calculate break ratio by dividing "breakCount" by "Pipe_len_Sum"
your help is greatly appreciated!
Thanks in advance!
Anatoli