Returns
object[] - You should return an array of
sys.data.Record or
JSON. Otherwise an error will be logged.
Samples
//based on an entity called 'Companies' we construct every record of 'Sales Vs Marketing'
var companies = sys.data.find('companies', {});
var response = [];
var companyMap = {};
while (companies.hasNext()) {
var company = companies.next();
var companyId = company.id().toString();
companyMap[companyId] = {};
var companySalesAmountByPeriod = {};
var companyMaketingExpensesAmountByPeriod = {};
var companySales = sys.data.find('sales', {company: company.label()});
while(companySales.hasNext()) {
var cs = companySales.next();
var period = cs.field('period').format();
if (!companyMap[companyId][period]) {
companyMap[companyId][period] = {'sales': null, 'marketing': null};
}
if (companyMap[companyId][period].sales) {
companyMap[companyId][period].sales = companyMap[companyId][period].sales + cs.field('amount').val();
} else {
companyMap[companyId][period].sales = cs.field('amount').val();
}
}
var companyMaketingExpenses = sys.data.find('marketingExpenses', {company: company.label()});
while(companyMaketingExpenses.hasNext()) {
var cme = companyMaketingExpenses.next();
var period = cme.field('period').format();
if (!companyMap[companyId][period]) {
companyMap[companyId][period] = {'sales': null, 'marketing': null};
}
if (companyMap[companyId][period].marketing) {
companyMap[companyId][period].marketing = companyMap[companyId][period].marketing + cme.field('amount').val();
} else {
companyMap[companyId][period].marketing = cme.field('amount').val();
}
}
}
for (var companyId in companyMap) {
for (var period in companyMap[companyId]) {
var svm = sys.data.createRecord('salesVsMarketing');
svm.field('period').val(period);
svm.field('marketing').val(companyMap[companyId][period].marketing);
svm.field('sales').val(companyMap[companyId][period].sales);
response.push(svm);
}
}
return response; // we return an array of sys.data.Record