diff --git a/base/src/org/compiere/model/MProcess.java b/base/src/org/compiere/model/MProcess.java
index 529f713da5..af7be72f8c 100644
--- a/base/src/org/compiere/model/MProcess.java
+++ b/base/src/org/compiere/model/MProcess.java
@@ -1,5 +1,5 @@
/******************************************************************************
- * Product: Adempiere ERP & CRM Smart Business Solution *
+ * Product: Adempiere ERP & CRM Smart Business Solution *
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
* This program is free software; you can redistribute it and/or modify it *
* under the terms version 2 of the GNU General Public License as published *
@@ -16,16 +16,13 @@
*****************************************************************************/
package org.compiere.model;
-import java.sql.PreparedStatement;
import java.sql.ResultSet;
-import java.util.ArrayList;
+import java.util.List;
import java.util.Properties;
-import java.util.logging.Level;
import org.adempiere.util.ProcessUtil;
import org.compiere.process.ProcessInfo;
import org.compiere.util.CCache;
-import org.compiere.util.CLogger;
import org.compiere.util.DB;
import org.compiere.util.Trx;
@@ -35,7 +32,9 @@ import org.compiere.util.Trx;
* @author Jorg Janke
* @version $Id: MProcess.java,v 1.4 2006/07/30 00:58:04 jjanke Exp $
*
- * @author Teo Sarca, SC ARHIPAC SERVICE SRL - BF [ 1757523 ]
+ * @author Teo Sarca, www.arhipac.ro
+ *
BF [ 1757523 ] Server Processes are using Server's context
+ * FR [ 2214883 ] Remove SQL code and Replace for Query
*/
public class MProcess extends X_AD_Process
{
@@ -71,50 +70,21 @@ public class MProcess extends X_AD_Process
*/
public static MProcess getFromMenu (Properties ctx, int AD_Menu_ID)
{
- MProcess retValue = null;
- String sql = "SELECT * FROM AD_Process p "
- + "WHERE EXISTS (SELECT * FROM AD_Menu m "
- + "WHERE m.AD_Process_ID=p.AD_Process_ID AND m.AD_Menu_ID=?)";
- PreparedStatement pstmt = null;
- try
+ String whereClause = "EXISTS (SELECT 1 FROM AD_Menu m"
+ +" WHERE m.AD_Process_ID=AD_Process.AD_Process_ID AND m.AD_Menu_ID=?)";
+ MProcess p = new Query(ctx, MProcess.Table_Name, whereClause, null)
+ .setParameters(new Object[]{AD_Menu_ID})
+ .firstOnly();
+ if (p != null)
{
- pstmt = DB.prepareStatement (sql, null);
- pstmt.setInt (1, AD_Menu_ID);
- ResultSet rs = pstmt.executeQuery ();
- if (rs.next())
- {
- retValue = new MProcess (ctx, rs, null);
- // Save in cache
- Integer key = new Integer (retValue.getAD_Process_ID());
- s_cache.put (key, retValue);
- }
- rs.close ();
- pstmt.close ();
- pstmt = null;
+ s_cache.put (p.get_ID(), p);
}
- catch (Exception e)
- {
- s_log.log(Level.SEVERE, sql, e);
- }
- try
- {
- if (pstmt != null)
- pstmt.close ();
- pstmt = null;
- }
- catch (Exception e)
- {
- pstmt = null;
- }
-
- return retValue;
+ return p;
} // getFromMenu
/** Cache */
- private static CCache s_cache = new CCache("AD_Process", 20);
- /** Static Logger */
- private static CLogger s_log = CLogger.getCLogger (MProcess.class);
+ private static CCache s_cache = new CCache(Table_Name, 20);
/**************************************************************************
@@ -161,36 +131,12 @@ public class MProcess extends X_AD_Process
{
if (m_parameters != null)
return m_parameters;
- ArrayList list = new ArrayList();
//
- String sql = "SELECT * FROM AD_Process_Para WHERE AD_Process_ID=? ORDER BY SeqNo";
- PreparedStatement pstmt = null;
- try
- {
- pstmt = DB.prepareStatement(sql, null);
- pstmt.setInt(1, getAD_Process_ID());
- ResultSet rs = pstmt.executeQuery();
- while (rs.next())
- list.add(new MProcessPara(getCtx(), rs, null));
- rs.close();
- pstmt.close();
- pstmt = null;
- }
- catch (Exception e)
- {
- log.log(Level.SEVERE, sql, e);
- }
- finally
- {
- try
- {
- if (pstmt != null)
- pstmt.close ();
- }
- catch (Exception e)
- {}
- pstmt = null;
- }
+ String whereClause = MProcessPara.COLUMNNAME_AD_Process_ID+"=?";
+ List list = new Query(getCtx(), MProcessPara.Table_Name, whereClause, get_TrxName())
+ .setParameters(new Object[]{get_ID()})
+ .setOrderBy(MProcessPara.COLUMNNAME_SeqNo)
+ .list();
//
m_parameters = new MProcessPara[list.size()];
list.toArray(m_parameters);
@@ -240,7 +186,7 @@ public class MProcess extends X_AD_Process
MPInstance pInstance = new MPInstance (this, Record_ID);
// Lock
pInstance.setIsProcessing(true);
- pInstance.save();
+ pInstance.saveEx();
boolean ok = true;
@@ -252,7 +198,7 @@ public class MProcess extends X_AD_Process
pInstance.setResult(ok ? MPInstance.RESULT_OK : MPInstance.RESULT_ERROR);
pInstance.setErrorMsg(processInfo.getSummary());
pInstance.setIsProcessing(false);
- pInstance.save();
+ pInstance.saveEx();
//
pInstance.log();
return pInstance;
@@ -271,7 +217,7 @@ public class MProcess extends X_AD_Process
MPInstance pInstance = new MPInstance (this, pi.getRecord_ID());
// Lock
pInstance.setIsProcessing(true);
- pInstance.save();
+ pInstance.saveEx();
}
boolean ok = false;
@@ -386,7 +332,7 @@ public class MProcess extends X_AD_Process
{
MProcessAccess pa = new MProcessAccess(this, roles[i].getAD_Role_ID());
- pa.save();
+ pa.saveEx();
}
}
// Menu/Workflow
@@ -399,7 +345,7 @@ public class MProcess extends X_AD_Process
menues[i].setIsActive(isActive());
menues[i].setName(getName());
menues[i].setDescription(getDescription());
- menues[i].save();
+ menues[i].saveEx();
}
X_AD_WF_Node[] nodes = MWindow.getWFNodes(getCtx(), "AD_Process_ID=" + getAD_Process_ID(), get_TrxName());
for (int i = 0; i < nodes.length; i++)
@@ -418,35 +364,21 @@ public class MProcess extends X_AD_Process
changed = true;
}
if (changed)
- nodes[i].save();
+ nodes[i].saveEx();
}
}
return success;
} // afterSave
/**
- * Grant independence to GenerateModel from AD_Process_ID
- * @param String tableName
- * @return int retValue
+ * Grant independence to GenerateModel from AD_Process_ID
+ * @param value
+ * @param trxName
+ * @return
*/
- public static int getProcess_ID(String value, String trxname) {
- int retValue = 0;
- String SQL = "SELECT AD_Process_ID FROM AD_Process WHERE value = ?";
- try
- {
- PreparedStatement pstmt = DB.prepareStatement(SQL, trxname);
- pstmt.setString(1, value);
- ResultSet rs = pstmt.executeQuery();
- if (rs.next())
- retValue = rs.getInt(1);
- rs.close();
- pstmt.close();
- }
- catch (Exception e)
- {
- s_log.log(Level.SEVERE, SQL, e);
- retValue = -1;
- }
+ public static int getProcess_ID(String value, String trxName)
+ {
+ int retValue = DB.getSQLValueEx(trxName, "SELECT AD_Process_ID FROM AD_Process WHERE Value=?", value);
return retValue;
}