var result = ReportingUtil.executeSelectSqlQuery("SELECT END_TIME_ FROM ACT_HI_TASKINST where END_TIME_ is not null and month(END_TIME_) = " + (month + 1) + " and ASSIGNEE_ = '" + employee + "'");
while (result.next()) { // process results one row at a time
var timestamp = result.getTimestamp(1);
...
...
@@ -71,24 +71,26 @@
cal.setTime(timestamp);
var day = cal.get(Calendar.DAY_OF_MONTH);
var previousCount = counts[day + ""];
counts[day + ""] = previousCount + 1;
var previousCount = counts[day];
counts[day] = counts[day] + 1;
}
// Create data set
var dataset = {};
var dataset = reportData.newDataset();
dataset.type = "lineChart";
dataset.description = "Daily productivity overview for " + employee;
dataset.xaxis = "Day of month";
dataset.yaxis = "Number of completed tasks";
dataset.data = counts;
reportData.datasets.push(dataset);
execution.setVariable("reportData", new java.lang.String(JSON.stringify(reportData)).getBytes("UTF-8"));
var result = ReportingUtil.executeSelectSqlQuery("SELECT END_TIME_ FROM ACT_HI_TASKINST where END_TIME_ is not null and month(END_TIME_) = " + (month + 1) + " and ASSIGNEE_ = '" + employee + "'");
while (result.next()) { // process results one row at a time
...
...
@@ -98,26 +100,23 @@
cal.setTime(timestamp);
var hour = cal.get(Calendar.HOUR_OF_DAY);
var previousCount = counts[hour + ""];
counts[hour + ""] = previousCount + 1;
var previousCount = counts[hour];
counts[hour] = counts[hour] + 1;
}
// Create data set
var dataset = {};
var dataset = reportData.newDataset();
dataset.type = "lineChart";
dataset.description = "Hourly productivity overview for " + employee;
dataset.xaxis = "Hour of day";
dataset.yaxis = "Number of completed tasks";
dataset.data = counts;
reportData.datasets.push(dataset);
execution.setVariable("reportData", new java.lang.String(JSON.stringify(reportData)).getBytes("UTF-8"));
for (var i=0; i<=24; i++) {
dataset.add(i + "", counts[i]);
}
}
} else {
reportData.data = {};
execution.setVariable("reportData", new java.lang.String(JSON.stringify(reportData)).getBytes("UTF-8"));
var result = ReportingUtil.executeSelectSqlQuery("SELECT PD.NAME_, PD.VERSION_ , count(*) FROM ACT_HI_PROCINST PI inner join ACT_RE_PROCDEF PD on PI.PROC_DEF_ID_ = PD.ID_ group by PROC_DEF_ID_");
/* JDK 7 only
var reportData = {};
reportData.datasets = [];
...
...
@@ -35,18 +37,36 @@
dataset.data[name + " (v" + version + ")"] = count;
}
reportData.datasets.push(dataset);
// We also include a list view of the same data
var dataset2 = {};
dataset2.type="list";
dataset2.description = "List overview of process instances";
dataset2.data = dataset.data;
reportData.datasets.push(dataset2);
// We want to store the results as bytes as the string size is limited in the variables table
execution.setVariable("reportData", new java.lang.String(JSON.stringify(reportData)).getBytes("UTF-8"));
var result = ReportingUtil.executeSelectSqlQuery("select NAME_, avg(DURATION_) from ACT_HI_TASKINST where PROC_DEF_ID_ = '" + processDefinition.getId() + "' and END_TIME_ is not null group by NAME_");
/* JDK 7
var reportData = {};
reportData.datasets = [];
...
...
@@ -46,6 +48,24 @@
reportData.datasets.push(dataset);
execution.setVariable("reportData", new java.lang.String(JSON.stringify(reportData)).getBytes("UTF-8"));
var result = ReportingUtil.executeSelectSqlQuery("SELECT PD.NAME_, PD.VERSION_ , count(*) FROM ACT_HI_PROCINST PI inner join ACT_RE_PROCDEF PD on PI.PROC_DEF_ID_ = PD.ID_ group by PROC_DEF_ID_");