KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > erpCommon > ad_process > ImportProcess


1 /*
2  ******************************************************************************
3  * The contents of this file are subject to the Compiere License Version 1.1
4  * ("License"); You may not use this file except in compliance with the License
5  * You may obtain a copy of the License at http://www.compiere.org/license.html
6  * Software distributed under the License is distributed on an "AS IS" basis,
7  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
8  * the specific language governing rights and limitations under the License.
9  * The Original Code is Compiere ERP & CRM Business Solution
10  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
11  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
12  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
13  * Contributor(s): Openbravo SL
14  * Contributions are Copyright (C) 2001-2006 Openbravo S.L.
15  ******************************************************************************
16 */

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 // imports for transactions
27
import org.openbravo.database.ConnectionProvider;
28
29
30 public abstract class ImportProcess {
31   static Logger log4j = Logger.getLogger(ImportProcess.class);
32
33   private String JavaDoc m_AD_PInstance_ID = "";
34   private boolean m_error = false;
35   private StringBuffer JavaDoc m_msg = new StringBuffer JavaDoc();
36   private String JavaDoc m_AD_User_ID = "";
37   private String JavaDoc m_AD_Client_ID = "";
38   private String JavaDoc m_AD_Org_ID = "";
39   private Vector<Object JavaDoc> m_params = new Vector<Object JavaDoc>();
40   private ConnectionProvider m_conn;
41   protected static String JavaDoc MSG_SaveErrorRowNotFound = "@SaveErrorRowNotFound@";
42   protected static String JavaDoc MSG_InvalidArguments = "@InvalidArguments@";
43
44   public ImportProcess(ConnectionProvider conn) {
45     //PropertyConfigurator.configure("log4j.lcf");
46
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 JavaDoc 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 JavaDoc getAD_Process_ID();
75   protected abstract String JavaDoc getRecord_ID();
76
77   protected ConnectionProvider getConnection() {
78     return m_conn;
79   }
80
81   public String JavaDoc getAD_User_ID() {
82     return m_AD_User_ID;
83   }
84
85   public void setAD_User_ID(String JavaDoc adUserId) {
86     m_AD_User_ID = adUserId;
87   }
88
89   public String JavaDoc getAD_Client_ID() {
90     return m_AD_Client_ID;
91   }
92
93   public void setAD_Client_ID(String JavaDoc adClientId) {
94     m_AD_Client_ID = adClientId;
95   }
96
97   public String JavaDoc getAD_Org_ID() {
98     return m_AD_Org_ID;
99   }
100
101   public void setAD_Org_ID(String JavaDoc adOrgId) {
102     m_AD_Org_ID = adOrgId;
103   }
104
105   protected String JavaDoc getAD_PInstance_ID() {
106       return m_AD_PInstance_ID;
107   }
108
109   public void addLog(String JavaDoc msgtext) {
110     m_msg.append(msgtext);
111   }
112
113   public String JavaDoc getLog() {
114     return m_msg.toString();
115   }
116
117   public boolean isError() {
118     return m_error;
119   }
120
121   public String JavaDoc getParamValue(String JavaDoc paramName) {
122     return getParamData(paramName, 1);
123   }
124
125   public String JavaDoc getParamValueTo(String JavaDoc paramName) {
126     return getParamData(paramName, 2);
127   }
128
129   public String JavaDoc getParamData(String JavaDoc paramName, int index) {
130     if (m_params==null) return "";
131     for (int i=0;i<m_params.size();i++) {
132       String JavaDoc[] param = (String JavaDoc[])(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 JavaDoc parametername, String JavaDoc seqno, String JavaDoc 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 JavaDoc parametername, String JavaDoc seqno, String JavaDoc 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 JavaDoc parametername, String JavaDoc seqno, String JavaDoc 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 JavaDoc parametername, String JavaDoc seqno, String JavaDoc 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 JavaDoc[] param = {data[i].parametername, "", ""};
193       if (data[i].pString!=null && !data[i].pString.equals("")) {
194         param[1] = new String JavaDoc(data[i].pString);
195         param[2] = new String JavaDoc(data[i].pStringTo);
196       } else if (data[i].pNumber!=null && !data[i].pNumber.equals("")) {
197         param[1] = new String JavaDoc(data[i].pNumber);
198         param[2] = new String JavaDoc(data[i].pNumberTo);
199       } else if (data[i].pDate!=null && !data[i].pDate.equals("")) {
200         param[1] = new String JavaDoc(data[i].pDate);
201         param[2] = new String JavaDoc(data[i].pDateTo);
202       } else if (data[i].info!=null && !data[i].info.equals("")) {
203         param[1] = new String JavaDoc(data[i].info);
204         param[2] = new String JavaDoc(data[i].infoTo);
205       }
206       m_params.addElement(param);
207     }
208   }
209
210 }
211
Popular Tags