I'm looking at creating a new field in a returned feature set in ArcGIS Dashboard. I have the arcade code which is successfully returning a combined feature set from two datasets, however, I would like the count of rows from registry so that I can run some advanced formatting code in the table where the type is Features.
Essentially I want to return "Batch_Number"|"Count_of_Batch_Number_from_Registry"|etc
// Set portal
// Create featureset from registry (include all fields)
var unfilteredregistry = FeatureSetByPortalItem(portal, '', , ['*'], false);
// Filter registry to only include rows where "Batch_Number" is not null
var registry = Filter(unfilteredregistry, "Batch_Number IS NOT NULL");
// Create featureset from batch submission (include all fields)
var batchsubmission = FeatureSetByPortalItem(portal, '', 0, ['*'], false);
// Initialise empty feature array
var features = [];
var feat;
// Iterate through batch submission
for (var b in batchsubmission) {
feat = {
attributes: {
OBJECTID: b["objectid"],
Batch_Number: b["batch_number"], // <- map lowercase field to consistent name
Batch_Submission_Date: b["date_of_batch_submission_for_si"],
Site_Assessment_Complete: b["date_of_site_assessment_complet"],
Batch_Review_Priority: b["BatchReviewPriority"],
Registry_Acquisition_St: b["RegistryAcquisitionStart"],
Registry_Acquisition_Co: b["RegistryAcquisitionComplete"],
Batch_Acquirer: b["BatchAcquirer"],
Elapsed_Time: b["RegistryAcquisitionElapsedTim"],
Registry_Acquisition_Status: b["Registry_Acquisition_Status"],
Site_Assessment_Status: b["Site_Assessment_Status"]
}
};
Push(features, feat);
}
// Iterate through registry
for (var r in registry) {
feat = {
attributes: {
OBJECTID: r["OBJECTID"],
Batch_Number: r["Batch_Number"],
Batch_Submission_Date: null,
Site_Assessment_Complete: null,
Batch_Review_Priority: null,
Registry_Acquisition_St: null,
Registry_Acquisition_Co: null,
Batch_Acquirer: null,
Elapsed_Time: null,
Registry_Acquisition_Status: null,
Site_Assessment_Status: null
}
};
Push(features, feat);
}
// Create structured dictionary for Featureset
var combinedDict = {
fields: [
{ name: "OBJECTID", type: "esriFieldTypeObjectID"},
{ name: "Batch_Number", type: "esriFieldTypeString" },
{ name: "Batch_Submission_Date", type: "esriFieldTypeDate" },
{ name: "Site_Assessment_Complete_Date", type: "esriFieldTypeDate" },
{ name: "Batch_Review_Priority", type: "esriFieldTypeString" },
{ name: "Registry_Acquisition_Start", type: "esriFieldTypeDate" },
{ name: "Registry_Acquisition_Complete", type: "esriFieldTypeDate" },
{ name: "Batch_Acquirer", type: "esriFieldTypeString" },
{ name: "Elapsed_Time", type: "esriFieldTypeInteger" },
{ name: "Registry_Acquisition_Status", type: "esriFieldTypeString" },
{ name: "Site_Assessment_Status", type: "esriFieldTypeString" }
],
geometryType: "",
features: features
};
// Return combined feature set
return FeatureSet(combinedDict);