From 6717a38f963829a70b3881c44e63246f08fdf1ec Mon Sep 17 00:00:00 2001 From: Yamel Senih Date: Wed, 16 Oct 2019 21:42:39 -0400 Subject: [PATCH] Fixed error with parameters for list items --- .../util/BusinessDataServiceImplementation.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/spin/grpc/util/BusinessDataServiceImplementation.java b/src/main/java/org/spin/grpc/util/BusinessDataServiceImplementation.java index f0f8c0af0..80b3db40a 100644 --- a/src/main/java/org/spin/grpc/util/BusinessDataServiceImplementation.java +++ b/src/main/java/org/spin/grpc/util/BusinessDataServiceImplementation.java @@ -545,7 +545,12 @@ private BusinessProcess.Builder runProcess(Properties context, RunBusinessProces } } // Execute Process - ProcessInfo result = builder.execute(); + ProcessInfo result = null; + try { + result = builder.execute(); + } catch (Exception e) { + result = builder.getProcessInfo(); + } String instanceUuid = DB.getSQLValueString(null, "SELECT UUID FROM AD_PInstance WHERE AD_PInstance_ID = ?", result.getAD_PInstance_ID()); response.setInstanceUuid(validateNull(instanceUuid)); response.setIsError(result.isError()); @@ -1318,12 +1323,12 @@ private ListEntitiesResponse.Builder convertEntitiesList(Properties context, Lis orderByClause = " ORDER BY " + orderByClause; } // Count records - count = countRecords(context, parsedSQL, criteria.getTableName(), new ArrayList<>()); + count = countRecords(context, parsedSQL, criteria.getTableName(), params); // Add Row Number parsedSQL = parsedSQL + " AND ROWNUM >= " + offset + " AND ROWNUM <= " + limit; // Add Order By parsedSQL = parsedSQL + orderByClause; - builder = convertListEntitiesResult(MTable.get(context, criteria.getTableName()), parsedSQL); + builder = convertListEntitiesResult(MTable.get(context, criteria.getTableName()), parsedSQL, params); } // builder.setRecordCount(count); @@ -1343,7 +1348,7 @@ private ListEntitiesResponse.Builder convertEntitiesList(Properties context, Lis * @param sql * @return */ - private ListEntitiesResponse.Builder convertListEntitiesResult(MTable table, String sql) { + private ListEntitiesResponse.Builder convertListEntitiesResult(MTable table, String sql, List params) { PreparedStatement pstmt = null; ResultSet rs = null; ListEntitiesResponse.Builder builder = ListEntitiesResponse.newBuilder(); @@ -1356,6 +1361,10 @@ private ListEntitiesResponse.Builder convertListEntitiesResult(MTable table, Str } // SELECT Key, Value, Name FROM ... pstmt = DB.prepareStatement(sql, null); + AtomicInteger parameterIndex = new AtomicInteger(1); + for(Object value : params) { + setParameterFromObject(pstmt, value, parameterIndex.getAndIncrement()); + } // Get from Query rs = pstmt.executeQuery(); while(rs.next()) {