From 9132cee7f7c8d336ead0016ab7182a5efc4d65a2 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Thu, 27 Sep 2018 18:47:10 +0200 Subject: [PATCH] IDEMPIERE-3057 - improve notification from SQL Statements showing the count of records affected --- .../handler/SQLMandatoryElementHandler.java | 17 +++++++++-------- .../handler/SQLStatementElementHandler.java | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLMandatoryElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLMandatoryElementHandler.java index 8de3d8e3f5..02cde5be95 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLMandatoryElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLMandatoryElementHandler.java @@ -56,16 +56,17 @@ public class SQLMandatoryElementHandler extends AbstractElementHandler { if (sql.endsWith(";") && !(sql.toLowerCase().endsWith("end;"))) sql = sql.substring(0, sql.length() - 1); sql = Env.parseContext(Env.getCtx(), 0, sql, false); + int count = 0; PreparedStatement pstmt = null; X_AD_Package_Imp_Detail impDetail = createImportDetail(ctx, element.qName, "", 0); try { pstmt = DB.prepareStatement(sql, getTrxName(ctx)); if (DBType.equals("ALL")) { - int n = pstmt.executeUpdate(); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Mandatory: "+ getStringValue(element, "statement") + " ReturnValue="+n); + count = pstmt.executeUpdate(); + if (log.isLoggable(Level.INFO)) log.info("Executed SQL Mandatory: "+ getStringValue(element, "statement") + " ReturnValue="+count); } else if (DB.isOracle() && DBType.equals("Oracle")) { - int n = pstmt.executeUpdate(); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Mandatory for Oracle: "+ getStringValue(element, "statement") + " ReturnValue="+n); + count = pstmt.executeUpdate(); + if (log.isLoggable(Level.INFO)) log.info("Executed SQL Mandatory for Oracle: "+ getStringValue(element, "statement") + " ReturnValue="+count); } else if (DB.isPostgreSQL() && ( DBType.equals("Postgres") || DBType.equals("PostgreSQL") // backward compatibility with old packages developed by hand @@ -79,18 +80,18 @@ public class SQLMandatoryElementHandler extends AbstractElementHandler { Statement stmt = null; try { stmt = pstmt.getConnection().createStatement(); - int n = stmt.executeUpdate (sql); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Mandatory for PostgreSQL: "+ getStringValue(element,"statement") + " ReturnValue="+n); + count = stmt.executeUpdate (sql); + if (log.isLoggable(Level.INFO)) log.info("Executed SQL Mandatory for PostgreSQL: "+ getStringValue(element,"statement") + " ReturnValue="+count); } finally { DB.close(stmt); stmt = null; } } - logImportDetail (ctx, impDetail, 1, "SQLMandatory",1,"Execute"); + logImportDetail (ctx, impDetail, 1, "SQLMandatory",count,"Execute"); ctx.packIn.getNotifier().addSuccessLine("-> " + sql); } catch (Exception e) { ctx.packIn.getNotifier().addFailureLine("SQL Mandatory failed, error (" + e.getLocalizedMessage() + "):"); - logImportDetail (ctx, impDetail, 0, "SQLMandatory",1,"Execute"); + logImportDetail (ctx, impDetail, 0, "SQLMandatory",-1,"Execute"); ctx.packIn.getNotifier().addFailureLine("-> " + sql); log.log(Level.SEVERE,"SQLMandatory", e); throw new AdempiereException(e); diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java index fab99602f2..89372ff93a 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java @@ -49,6 +49,7 @@ public class SQLStatementElementHandler extends AbstractElementHandler { sql = sql.substring(0, sql.length() - 1); sql=Env.parseContext(Env.getCtx(), 0, sql, false); // tbayen IDEMPIERE-2140 Savepoint savepoint = null; + int count = 0; PreparedStatement pstmt = null; X_AD_Package_Imp_Detail impDetail = null; impDetail = createImportDetail(ctx, element.qName, "", 0); @@ -61,11 +62,11 @@ public class SQLStatementElementHandler extends AbstractElementHandler { pstmt = DB.prepareStatement(sql, getTrxName(ctx)); if (DBType.equals("ALL")) { - int n = pstmt.executeUpdate(); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement: "+ getStringValue(element, "statement") + " ReturnValue="+n); + count = pstmt.executeUpdate(); + if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement: "+ getStringValue(element, "statement") + " ReturnValue="+count); } else if (DB.isOracle() == true && DBType.equals("Oracle")) { - int n = pstmt.executeUpdate(); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement for Oracle: "+ getStringValue(element, "statement") + " ReturnValue="+n); + count = pstmt.executeUpdate(); + if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement for Oracle: "+ getStringValue(element, "statement") + " ReturnValue="+count); } else if (DB.isPostgreSQL() && ( DBType.equals("Postgres") || DBType.equals("PostgreSQL") // backward compatibility with old packages developed by hand @@ -80,14 +81,14 @@ public class SQLStatementElementHandler extends AbstractElementHandler { Statement stmt = null; try { stmt = pstmt.getConnection().createStatement(); - int n = stmt.executeUpdate (sql); - if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement for PostgreSQL: "+ getStringValue(element,"statement") + " ReturnValue="+n); + count = stmt.executeUpdate (sql); + if (log.isLoggable(Level.INFO)) log.info("Executed SQL Statement for PostgreSQL: "+ getStringValue(element,"statement") + " ReturnValue="+count); } finally { DB.close(stmt); stmt = null; } } - logImportDetail (ctx, impDetail, 1, "SQLStatement",1,"Execute"); + logImportDetail (ctx, impDetail, 1, "SQLStatement",count,"Execute"); ctx.packIn.getNotifier().addSuccessLine("-> " + sql); } catch (Exception e) { // rollback immediately on exception to avoid a wrong SQL stop the whole process @@ -105,7 +106,7 @@ public class SQLStatementElementHandler extends AbstractElementHandler { savepoint = null; } ctx.packIn.getNotifier().addFailureLine("SQL statement failed but ignored, error (" + e.getLocalizedMessage() + "): "); - logImportDetail (ctx, impDetail, 0, "SQLStatement",1,"Execute"); + logImportDetail (ctx, impDetail, 0, "SQLStatement",-1,"Execute"); ctx.packIn.getNotifier().addFailureLine("-> " + sql); log.log(Level.SEVERE,"SQLStatement", e); } finally {