MProcess:
* FR [ 2214883 ] Remove SQL code and Replace for Query * use saveEx instead of save - much more safer * fix javadoc
This commit is contained in:
parent
530082a3c8
commit
c190bf52f8
|
@ -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. *
|
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
* 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 *
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
@ -16,16 +16,13 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.compiere.model;
|
package org.compiere.model;
|
||||||
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.util.ArrayList;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
|
||||||
|
|
||||||
import org.adempiere.util.ProcessUtil;
|
import org.adempiere.util.ProcessUtil;
|
||||||
import org.compiere.process.ProcessInfo;
|
import org.compiere.process.ProcessInfo;
|
||||||
import org.compiere.util.CCache;
|
import org.compiere.util.CCache;
|
||||||
import org.compiere.util.CLogger;
|
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Trx;
|
import org.compiere.util.Trx;
|
||||||
|
|
||||||
|
@ -35,7 +32,9 @@ import org.compiere.util.Trx;
|
||||||
* @author Jorg Janke
|
* @author Jorg Janke
|
||||||
* @version $Id: MProcess.java,v 1.4 2006/07/30 00:58:04 jjanke Exp $
|
* @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
|
||||||
|
* <li>BF [ 1757523 ] Server Processes are using Server's context
|
||||||
|
* <li>FR [ 2214883 ] Remove SQL code and Replace for Query
|
||||||
*/
|
*/
|
||||||
public class MProcess extends X_AD_Process
|
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)
|
public static MProcess getFromMenu (Properties ctx, int AD_Menu_ID)
|
||||||
{
|
{
|
||||||
MProcess retValue = null;
|
String whereClause = "EXISTS (SELECT 1 FROM AD_Menu m"
|
||||||
String sql = "SELECT * FROM AD_Process p "
|
+" WHERE m.AD_Process_ID=AD_Process.AD_Process_ID AND m.AD_Menu_ID=?)";
|
||||||
+ "WHERE EXISTS (SELECT * FROM AD_Menu m "
|
MProcess p = new Query(ctx, MProcess.Table_Name, whereClause, null)
|
||||||
+ "WHERE m.AD_Process_ID=p.AD_Process_ID AND m.AD_Menu_ID=?)";
|
.setParameters(new Object[]{AD_Menu_ID})
|
||||||
PreparedStatement pstmt = null;
|
.firstOnly();
|
||||||
try
|
if (p != null)
|
||||||
{
|
{
|
||||||
pstmt = DB.prepareStatement (sql, null);
|
s_cache.put (p.get_ID(), p);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
return p;
|
||||||
{
|
|
||||||
s_log.log(Level.SEVERE, sql, e);
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (pstmt != null)
|
|
||||||
pstmt.close ();
|
|
||||||
pstmt = null;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
pstmt = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return retValue;
|
|
||||||
} // getFromMenu
|
} // getFromMenu
|
||||||
|
|
||||||
|
|
||||||
/** Cache */
|
/** Cache */
|
||||||
private static CCache<Integer,MProcess> s_cache = new CCache<Integer,MProcess>("AD_Process", 20);
|
private static CCache<Integer,MProcess> s_cache = new CCache<Integer,MProcess>(Table_Name, 20);
|
||||||
/** Static Logger */
|
|
||||||
private static CLogger s_log = CLogger.getCLogger (MProcess.class);
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -161,36 +131,12 @@ public class MProcess extends X_AD_Process
|
||||||
{
|
{
|
||||||
if (m_parameters != null)
|
if (m_parameters != null)
|
||||||
return m_parameters;
|
return m_parameters;
|
||||||
ArrayList<MProcessPara> list = new ArrayList<MProcessPara>();
|
|
||||||
//
|
//
|
||||||
String sql = "SELECT * FROM AD_Process_Para WHERE AD_Process_ID=? ORDER BY SeqNo";
|
String whereClause = MProcessPara.COLUMNNAME_AD_Process_ID+"=?";
|
||||||
PreparedStatement pstmt = null;
|
List<MProcessPara> list = new Query(getCtx(), MProcessPara.Table_Name, whereClause, get_TrxName())
|
||||||
try
|
.setParameters(new Object[]{get_ID()})
|
||||||
{
|
.setOrderBy(MProcessPara.COLUMNNAME_SeqNo)
|
||||||
pstmt = DB.prepareStatement(sql, null);
|
.list();
|
||||||
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;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
m_parameters = new MProcessPara[list.size()];
|
m_parameters = new MProcessPara[list.size()];
|
||||||
list.toArray(m_parameters);
|
list.toArray(m_parameters);
|
||||||
|
@ -240,7 +186,7 @@ public class MProcess extends X_AD_Process
|
||||||
MPInstance pInstance = new MPInstance (this, Record_ID);
|
MPInstance pInstance = new MPInstance (this, Record_ID);
|
||||||
// Lock
|
// Lock
|
||||||
pInstance.setIsProcessing(true);
|
pInstance.setIsProcessing(true);
|
||||||
pInstance.save();
|
pInstance.saveEx();
|
||||||
|
|
||||||
boolean ok = true;
|
boolean ok = true;
|
||||||
|
|
||||||
|
@ -252,7 +198,7 @@ public class MProcess extends X_AD_Process
|
||||||
pInstance.setResult(ok ? MPInstance.RESULT_OK : MPInstance.RESULT_ERROR);
|
pInstance.setResult(ok ? MPInstance.RESULT_OK : MPInstance.RESULT_ERROR);
|
||||||
pInstance.setErrorMsg(processInfo.getSummary());
|
pInstance.setErrorMsg(processInfo.getSummary());
|
||||||
pInstance.setIsProcessing(false);
|
pInstance.setIsProcessing(false);
|
||||||
pInstance.save();
|
pInstance.saveEx();
|
||||||
//
|
//
|
||||||
pInstance.log();
|
pInstance.log();
|
||||||
return pInstance;
|
return pInstance;
|
||||||
|
@ -271,7 +217,7 @@ public class MProcess extends X_AD_Process
|
||||||
MPInstance pInstance = new MPInstance (this, pi.getRecord_ID());
|
MPInstance pInstance = new MPInstance (this, pi.getRecord_ID());
|
||||||
// Lock
|
// Lock
|
||||||
pInstance.setIsProcessing(true);
|
pInstance.setIsProcessing(true);
|
||||||
pInstance.save();
|
pInstance.saveEx();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean ok = false;
|
boolean ok = false;
|
||||||
|
@ -386,7 +332,7 @@ public class MProcess extends X_AD_Process
|
||||||
{
|
{
|
||||||
|
|
||||||
MProcessAccess pa = new MProcessAccess(this, roles[i].getAD_Role_ID());
|
MProcessAccess pa = new MProcessAccess(this, roles[i].getAD_Role_ID());
|
||||||
pa.save();
|
pa.saveEx();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Menu/Workflow
|
// Menu/Workflow
|
||||||
|
@ -399,7 +345,7 @@ public class MProcess extends X_AD_Process
|
||||||
menues[i].setIsActive(isActive());
|
menues[i].setIsActive(isActive());
|
||||||
menues[i].setName(getName());
|
menues[i].setName(getName());
|
||||||
menues[i].setDescription(getDescription());
|
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());
|
X_AD_WF_Node[] nodes = MWindow.getWFNodes(getCtx(), "AD_Process_ID=" + getAD_Process_ID(), get_TrxName());
|
||||||
for (int i = 0; i < nodes.length; i++)
|
for (int i = 0; i < nodes.length; i++)
|
||||||
|
@ -418,35 +364,21 @@ public class MProcess extends X_AD_Process
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
if (changed)
|
if (changed)
|
||||||
nodes[i].save();
|
nodes[i].saveEx();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
} // afterSave
|
} // afterSave
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grant independence to GenerateModel from AD_Process_ID
|
* Grant independence to GenerateModel from AD_Process_ID
|
||||||
* @param String tableName
|
* @param value
|
||||||
* @return int retValue
|
* @param trxName
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public static int getProcess_ID(String value, String trxname) {
|
public static int getProcess_ID(String value, String trxName)
|
||||||
int retValue = 0;
|
{
|
||||||
String SQL = "SELECT AD_Process_ID FROM AD_Process WHERE value = ?";
|
int retValue = DB.getSQLValueEx(trxName, "SELECT AD_Process_ID FROM AD_Process WHERE Value=?", 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;
|
|
||||||
}
|
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue