1 17 package org.openbravo.erpCommon.ad_process; 18 19 import org.openbravo.erpCommon.utility.*; 20 import org.openbravo.base.secureApp.VariablesSecureApp; 21 22 import java.util.*; 23 import javax.servlet.*; 24 import org.apache.log4j.Logger; 25 26 import org.openbravo.database.ConnectionProvider; 28 29 30 public abstract class ImportProcess { 31 static Logger log4j = Logger.getLogger(ImportProcess.class); 32 33 private String m_AD_PInstance_ID = ""; 34 private boolean m_error = false; 35 private StringBuffer m_msg = new StringBuffer (); 36 private String m_AD_User_ID = ""; 37 private String m_AD_Client_ID = ""; 38 private String m_AD_Org_ID = ""; 39 private Vector<Object > m_params = new Vector<Object >(); 40 private ConnectionProvider m_conn; 41 protected static String MSG_SaveErrorRowNotFound = "@SaveErrorRowNotFound@"; 42 protected static String MSG_InvalidArguments = "@InvalidArguments@"; 43 44 public ImportProcess(ConnectionProvider conn) { 45 m_conn = conn; 47 } 48 49 public final boolean startProcess(VariablesSecureApp vars) throws ServletException { 50 createInstance(vars); 51 createInstanceParams(vars); 52 lock(); 53 process(vars); 54 unlock(); 55 return m_error; 56 } 57 58 protected void process(VariablesSecureApp vars) { 59 String msg = null; 60 try { 61 fillInstanceParams(); 62 m_error = doIt(vars); 63 } catch(ServletException e) { 64 msg = e.getMessage(); 65 if(msg == null) msg = e.toString(); 66 if(e.getCause() != null) log4j.error("process - " + msg, e.getCause()); 67 else log4j.error("process - " + msg); 68 m_error = true; 69 } 70 } 71 72 protected abstract boolean doIt(VariablesSecureApp vars) throws ServletException; 73 protected abstract void createInstanceParams(VariablesSecureApp vars) throws ServletException; 74 protected abstract String getAD_Process_ID(); 75 protected abstract String getRecord_ID(); 76 77 protected ConnectionProvider getConnection() { 78 return m_conn; 79 } 80 81 public String getAD_User_ID() { 82 return m_AD_User_ID; 83 } 84 85 public void setAD_User_ID(String adUserId) { 86 m_AD_User_ID = adUserId; 87 } 88 89 public String getAD_Client_ID() { 90 return m_AD_Client_ID; 91 } 92 93 public void setAD_Client_ID(String adClientId) { 94 m_AD_Client_ID = adClientId; 95 } 96 97 public String getAD_Org_ID() { 98 return m_AD_Org_ID; 99 } 100 101 public void setAD_Org_ID(String adOrgId) { 102 m_AD_Org_ID = adOrgId; 103 } 104 105 protected String getAD_PInstance_ID() { 106 return m_AD_PInstance_ID; 107 } 108 109 public void addLog(String msgtext) { 110 m_msg.append(msgtext); 111 } 112 113 public String getLog() { 114 return m_msg.toString(); 115 } 116 117 public boolean isError() { 118 return m_error; 119 } 120 121 public String getParamValue(String paramName) { 122 return getParamData(paramName, 1); 123 } 124 125 public String getParamValueTo(String paramName) { 126 return getParamData(paramName, 2); 127 } 128 129 public String getParamData(String paramName, int index) { 130 if (m_params==null) return ""; 131 for (int i=0;i<m_params.size();i++) { 132 String [] param = (String [])(m_params.elementAt(i)); 133 if (param[0].equals(paramName)) return param[index]; 134 } 135 return ""; 136 } 137 138 private void createInstance(VariablesSecureApp vars) throws ServletException { 139 try { 140 setAD_User_ID(vars.getUser()); 141 setAD_Client_ID(vars.getClient()); 142 setAD_Org_ID(vars.getOrg()); 143 m_AD_PInstance_ID = SequenceIdData.getSequence(getConnection(), "AD_PInstance", getAD_Client_ID()); 144 145 ImportProcessData.insertInstance(getConnection(), m_AD_PInstance_ID, getAD_Process_ID(), getRecord_ID(), getAD_User_ID(), getAD_Client_ID(), getAD_Org_ID()); 146 } catch (ServletException ex) { 147 log4j.error("Unable to create instance - " + ex); 148 throw new ServletException("Unable to create instance - " + ex.getMessage()); 149 } 150 } 151 152 public void addParameterString(String parametername, String seqno, String value) throws ServletException { 153 ImportProcessData.insertPInstanceParam(getConnection(), getAD_PInstance_ID(), seqno, parametername, value, getAD_Client_ID(), getAD_Org_ID(), getAD_User_ID()); 154 } 155 156 public void addParameterNumber(String parametername, String seqno, String value) throws ServletException { 157 ImportProcessData.insertPInstanceParamNumber(getConnection(), getAD_PInstance_ID(), seqno, parametername, value, getAD_Client_ID(), getAD_Org_ID(), getAD_User_ID()); 158 } 159 160 public void addParameterDate(String parametername, String seqno, String value) throws ServletException { 161 ImportProcessData.insertPInstanceParamDate(getConnection(), getAD_PInstance_ID(), seqno, parametername, value, getAD_Client_ID(), getAD_Org_ID(), getAD_User_ID()); 162 } 163 164 public void addParameterInfo(String parametername, String seqno, String value) throws ServletException { 165 ImportProcessData.insertPInstanceParamInfo(getConnection(), getAD_PInstance_ID(), seqno, parametername, value, getAD_Client_ID(), getAD_Org_ID(), getAD_User_ID()); 166 } 167 168 private void lock() throws ServletException { 169 if (log4j.isDebugEnabled()) log4j.debug("lock"); 170 try { 171 ImportProcessData.lockInstance(getConnection(), getAD_PInstance_ID()); 172 } catch (ServletException ex) { 173 log4j.error("Unable to lock instance - " + ex); 174 throw new ServletException("Unable to lock instance - " + ex.getMessage()); 175 } 176 } 177 178 private void unlock() throws ServletException { 179 try { 180 ImportProcessData.unlockInstance(getConnection(), (m_error?"0":"1"), m_msg.toString(), getAD_PInstance_ID()); 181 } catch (ServletException ex) { 182 log4j.error("Unable to unlock instance - " + ex); 183 throw new ServletException("Unable to unlock instance - " + ex.getMessage()); 184 } 185 if (log4j.isDebugEnabled()) log4j.debug("unlock - Error=" + m_error + " - " + m_msg.toString()); 186 } 187 188 private void fillInstanceParams() throws ServletException { 189 ImportProcessData[] data = ImportProcessData.select(getConnection(), getAD_PInstance_ID()); 190 if (data==null || data.length==0) return; 191 for (int i=0;i<data.length;i++) { 192 String [] param = {data[i].parametername, "", ""}; 193 if (data[i].pString!=null && !data[i].pString.equals("")) { 194 param[1] = new String (data[i].pString); 195 param[2] = new String (data[i].pStringTo); 196 } else if (data[i].pNumber!=null && !data[i].pNumber.equals("")) { 197 param[1] = new String (data[i].pNumber); 198 param[2] = new String (data[i].pNumberTo); 199 } else if (data[i].pDate!=null && !data[i].pDate.equals("")) { 200 param[1] = new String (data[i].pDate); 201 param[2] = new String (data[i].pDateTo); 202 } else if (data[i].info!=null && !data[i].info.equals("")) { 203 param[1] = new String (data[i].info); 204 param[2] = new String (data[i].infoTo); 205 } 206 m_params.addElement(param); 207 } 208 } 209 210 } 211
| Popular Tags
|