1 14 package org.compiere.model; 15 16 import java.util.*; 17 import java.sql.*; 18 19 import org.compiere.util.DB; 20 21 22 28 public class MProcess extends X_AD_Process 29 { 30 35 public MProcess (Properties ctx, int AD_Process_ID) 36 { 37 super (ctx, AD_Process_ID); 38 if (AD_Process_ID == 0) 39 { 40 setIsReport (false); 41 setAccessLevel (null); 42 setEntityType (null); 43 setValue (null); 44 setIsUserStartable (false); 45 setName (null); 46 setAD_Process_ID (0); 47 } 48 } 50 55 public MProcess (Properties ctx, ResultSet rs) 56 { 57 super (ctx, rs); 58 } 60 protected POInfo initPO (Properties ctx) 61 { 62 int AD_Table_ID = 284; 63 POInfo poi = POInfo.getPOInfo (ctx, AD_Table_ID); 64 return poi; 65 } 66 67 private MProcess_Para[] m_parameters = null; 68 69 public MProcess_Para[] getParameter() 70 { 71 if (m_parameters != null) 72 return m_parameters; 73 ArrayList list = new ArrayList(); 74 String sql = "SELECT * FROM AD_Process_Para WHERE AD_Process_ID=?"; 76 PreparedStatement pstmt = null; 77 try 78 { 79 pstmt = DB.prepareStatement(sql); 80 pstmt.setInt(1, getAD_Process_ID()); 81 ResultSet rs = pstmt.executeQuery(); 82 while (rs.next()) 83 { 84 list.add(new MProcess_Para(getCtx(), rs)); 85 } 86 rs.close(); 87 pstmt.close(); 88 pstmt = null; 89 } 90 catch (Exception e) 91 { 92 log.error("getParameter", e); 93 } 94 finally 95 { 96 try 97 { 98 if (pstmt != null) 99 pstmt.close (); 100 } 101 catch (Exception e) 102 {} 103 pstmt = null; 104 } 105 m_parameters = new MProcess_Para[list.size()]; 107 list.toArray(m_parameters); 108 return m_parameters; 109 } 111 112 public String toString () 113 { 114 StringBuffer sb = new StringBuffer ("MProcess[") 115 .append (getID ()) 116 .append ("]"); 117 return sb.toString (); 118 } 119 120 121 122 127 public MPInstance process (int Record_ID) 128 { 129 MPInstance pi = new MPInstance (this, Record_ID); 130 pi.setIsProcessing(true); 132 pi.save(); 133 134 boolean ok = true; 135 136 String ProcedureName = getProcedureName(); 138 if (ProcedureName != null && ProcedureName.length() > 0) 139 { 140 ok = startProcess (ProcedureName, pi); 141 } 142 143 pi.setIsProcessing(false); 145 pi.save(); 146 pi.log(); 148 return pi; 149 } 151 157 private boolean startProcess (String ProcedureName, MPInstance pi) 158 { 159 int AD_PInstance_ID = pi.getAD_PInstance_ID(); 160 log.info("startProcess - " + ProcedureName + "(" + AD_PInstance_ID + ")"); 162 try 163 { 164 String sql = "{CALL " + ProcedureName + "(?)}"; 165 CallableStatement cstmt = DB.prepareCall(sql); cstmt.setInt(1, AD_PInstance_ID); 167 cstmt.executeUpdate(); 168 cstmt.close(); 169 } 170 catch (Exception e) 171 { 172 log.error("startProcess", e); 173 pi.setResult(MPInstance.RESULT_ERROR); 174 pi.setErrorMsg(e.getLocalizedMessage()); 175 return false; 176 } 177 pi.setResult(MPInstance.RESULT_OK); 178 return true; 179 } 181 182 } | Popular Tags |