Skip to content

Commit 64ecfe5

Browse files
committed
possible fix for KPI
(cherry picked from commit 51a607e)
1 parent c350c9a commit 64ecfe5

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

knowagedao/src/main/java/it/eng/spagobi/kpi/job/ProcessKpiJob.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -822,7 +822,7 @@ private static KpiValueExecLog computeKpi(ParsedKpi parsedKpi, List<AggregateMea
822822
Object theQuarter = ifNull(temporalValues.get("QUARTER"), CARDINALITY_ALL);
823823
Object theYear = ifNull(temporalValues.get("YEAR"), CARDINALITY_ALL);
824824
String insertSql = "INSERT INTO SBI_KPI_VALUE (id, kpi_id, kpi_version, logical_key, time_run, computed_value,"
825-
+ " the_day, the_week, the_month, the_quarter, the_year, state) VALUES (?, ?, ?, ?" + ",?, coalesce(? , 0) ,?,?,?,?,?,?)";
825+
+ " the_day, the_week, the_month, the_quarter, the_year, state) VALUES (?, ?, ?, ?" + ",?, coalesce(? , ?) ,?,?,?,?,?,?)";
826826
String whereCondition = "kpi_id = " + parsedKpi.id + " AND kpi_version = " + parsedKpi.version + " AND logical_key = '"
827827
+ logicalKey.toString().replaceAll("'", "''") + "'" + " AND the_day = '" + theDay + "' AND the_week = '" + theWeek + "'"
828828
+ " AND the_month = '" + theMonth + "' AND the_quarter = '" + theQuarter + "' AND the_year = '" + theYear + "'";
@@ -835,10 +835,17 @@ private static KpiValueExecLog computeKpi(ParsedKpi parsedKpi, List<AggregateMea
835835

836836
logger.debug("PERFORMING INSERT: " + insertSql);
837837

838-
session.createSQLQuery(insertSql).setParameter(0, ++lastId).setParameter(1, parsedKpi.id).setParameter(2, parsedKpi.version)
839-
.setParameter(3, logicalKey.toString().replaceAll("'", "''")).setParameter(4, timeRun).setParameter(5, (nullValue ? "0" : value))
840-
.setParameter(6, theDay).setParameter(7, theWeek).setParameter(8, theMonth).setParameter(9, theQuarter).setParameter(10, theYear)
841-
.setParameter(11, (nullValue ? "1" : "0")).executeUpdate();
838+
try {
839+
session.createSQLQuery(insertSql).setParameter(0, ++lastId).setParameter(1, parsedKpi.id).setParameter(2, parsedKpi.version)
840+
.setParameter(3, logicalKey.toString().replaceAll("'", "''")).setParameter(4, timeRun).setParameter(5, (nullValue ? "0" : value))
841+
.setParameter(6, 0).setParameter(7, theDay).setParameter(8, theWeek).setParameter(9, theMonth).setParameter(10, theQuarter).setParameter(11, theYear)
842+
.setParameter(12, (nullValue ? "1" : "0")).executeUpdate();
843+
} catch (Exception ex) {
844+
session.createSQLQuery(insertSql).setParameter(0, ++lastId).setParameter(1, parsedKpi.id).setParameter(2, parsedKpi.version)
845+
.setParameter(3, logicalKey.toString().replaceAll("'", "''")).setParameter(4, timeRun).setParameter(5, (nullValue ? "0" : value))
846+
.setParameter(6, '0').setParameter(7, theDay).setParameter(8, theWeek).setParameter(9, theMonth).setParameter(10, theQuarter).setParameter(11, theYear)
847+
.setParameter(12, (nullValue ? "1" : "0")).executeUpdate();
848+
}
842849
session.getTransaction().commit();
843850
}
844851

0 commit comments

Comments
 (0)