1、oa与sap接口java后台代码编写说明window版本oa与sap接口后台java接口说明(window版本)后台java处理页面分为三个sapconn.java sap连接java XSJGSPAction.java数据获取的javaXSJGSPHXAction.java数据回写的javaSapconn.java编写说明内容以及编写说明(该类不需要修改)packageweaver.interfaces.workflow.action;importjavax.swing.JOptionPane;importcom.sap.mw.jco.*;importweaver.general.BaseB
2、ean;public class SAPConn extends javax.swing.JFrame final static long serialVersionUID=90; final static String POOL_NAME = Pool; private static JCO.ClientmConnection=null; private static BaseBean bb = new BaseBean();private static String sapclient = ;private static String userid = ;private static St
3、ring password = ;private static String hostname = ;private static String systemnumber = ;private static String Language = ; /* *初始化连接 */ public void SAPConn () /* *初始化连接 */ private void init() try/读取配置文件信息 bb.writeLog(-SAP Client Connects Start -); sapclient = bb.getPropValue(SAPConn, SAPClient); us
4、erid = bb.getPropValue(SAPConn, Userid); password = bb.getPropValue(SAPConn, Password); hostname = bb.getPropValue(SAPConn, HostName); systemnumber = bb.getPropValue(SAPConn, SystemNumber); Language = bb.getPropValue(SAPConn, Language); JCO.Pool pool = JCO.getClientPoolManager().getPool(POOL_NAME);
5、if (pool = null) JCO.addClientPool(POOL_NAME, / pool name 100, / maximum number of connections sapclient, userid, password, Language, hostname, systemnumber); setConnection(JCO.getClient(POOL_NAME);/获取连接 bb.writeLog(get connection success); catch (Exception e) bb.writeLog(get connection error:+e); /
6、* *释放连接 */ public void releaseC() if(mConnection!=null) JCO.releaseClient(mConnection); /* *获取连接 */ publicJCO.ClientgetConnection() if (mConnection=null) init(); returnmConnection; /* *设置连接 */ public void setConnection(JCO.Client conn) mConnection = conn; /* *执行Bapi */ publicJCO.FunctionexcuteBapi(S
7、tring s) System.out.println(GET INTO Function Bapi!); SAPConnsapconn = new SAPConn(); JCO.Clientsapconnection = sapconn.getConnection(); JCO.RepositorymRepository; JCO.FunctionjcoFunction = null; System.out.println(sapconnection=+sapconnection); if(sapconnection=null) return jcoFunction; try mReposi
8、tory = new JCO.Repository(sap, sapconnection); System.out.println(mRepository=+mRepository); IFunctionTemplateft = mRepository.getFunctionTemplate(s); jcoFunction = new JCO.Function(ft); System.out.println(excueteBapi Success); returnjcoFunction; catch (Exception e) System.out.println(e); JOptionPan
9、e.showMessageDialog(null, e.getMessage(), 错误信息, 0); return null; finally 数据获取XSJGSPAction.java编写说明内容以及编写说明packageweaver.interfaces.workflow.action;importjava.util.List;importjava.util.ArrayList;importjava.util.Map;importjava.util.HashMap;importjavax.swing.JOptionPane; importweaver.general.TimeUtil;i
10、mportcom.sap.mw.jco.JCO;importcom.sap.mw.jco.JCO.Table;importcom.sap.mw.jco.JCO.Record;importcom.sap.mw.jco.IFunctionTemplate;/oa系统文件public class XSJGSPAction /生成jco对象对sap进行操作的对象 privateJCO.Clientsapconnection = new SAPConn().getConnection(); privateintcursorindex = -1; privateintdataconts = 0; priv
11、ateJCO.Tabledatas = null; /* *初始化 */ public void XSJGSPAction () /* *执行Bapi不需要修改 */ publicJCO.FunctionexcuteBapi(String s) System.out.println(GET INTO Function Bapi!); SAPConnsapconn = new SAPConn();/生成sap对象 JCO.Clientsapconnection = sapconn.getConnection();/获取连接 JCO.RepositorymRepository; JCO.Funct
12、ionjcoFunction = null;/生成function对象 System.out.println(sapconnection=+sapconnection); if(sapconnection=null) return jcoFunction; try mRepository = new JCO.Repository(sap, sapconnection); System.out.println(mRepository=+mRepository); IFunctionTemplateft = mRepository.getFunctionTemplate(s); jcoFuncti
13、on = new JCO.Function(ft); System.out.println(excueteBapi Success); returnjcoFunction; catch (Exception e) System.out.println(e); JOptionPane.showMessageDialog(null, e.getMessage(), 错误信息, 0); return null; finally /编写数据获取类public List Getexecute(String lv_vbeln) List list = new ArrayList();try cursori
14、ndex = -1; dataconts = 0; datas = null; Map mmap = null; Map dmap = null; List mlist = new ArrayList();/存放主表数据 List dlist = new ArrayList();/存放明细表数据 /function name执行sap提供的接口参数为接口名称 JCO.Functionbapi = excuteBapi(ZXSDDSPJK);/ZFUN_OA_CREATEPR ZXSDDSPJK zxsddspjk / input value String LV_VBELN = lv_vbeln
15、; /设置输入参数 bapi.getImportParameterList().setValue(LV_VBELN,LV_VBELN);/lv_vbeln sapconnection.execute(bapi);/执行接口 /datas=bapi.getTableParameterList().getTable(SPXM); String MESSAGEFX = (String) bapi.getExportParameterList().getValue(MESSAGE).toString();/获取接口返回值 System.out.println(MESSAGEFX= + MESSAGEF
16、X); Table codes = bapi.getTableParameterList().getTable(SPBT);/获取接口返回的表数据 / intcellrow=0; /cellrow=codes.getgetNumRows(); /String maintable=new Stringcellrow;/获取主表信息保存在mlist中 for (int i = 0; i codes.getNumRows(); i+) codes.setRow(i); mmap = new HashMap();/获取主表中的数据存放如hashmap中; mmap.put(VBELN,codes.ge
17、tString(VBELN); mmap.put(BSTKD,codes.getString(BSTKD); mmap.put(NAME1,codes.getString(NAME1); mmap.put(SDFNAME,codes.getString(SDFNAME); mmap.put(XSGY ,codes.getString(XSGY); mmap.put(KLIMK,codes.getString(KLIMK); mmap.put(SKFOR,codes.getString(SKFOR); mmap.put(DDJE,codes.getString(DDJE); mmap.put(C
18、E,codes.getString(CE); mmap.put(DQSJ,TimeUtil.getCurrentDateString(); mlist.add(mmap); /将主表数据放入到list中 list.add(mlist);/获取明细表中数据保存在dlist中 Table codesmx = bapi.getTableParameterList().getTable(SPXM); System.out.println( -+codesmx.getNumRows(); for (int i = 0; i +list.size(); catch (Exception e) System
19、.out.println(e); return list; 回写类XSJGSPHXAction.java内容以及编写说明packageweaver.interfaces.workflow.action;importjava.awt.List;importjava.awt.peer.LightweightPeer;mons.logging.Log;mons.logging.LogFactory;importcom.sap.mw.jco.JCO;importcom.sap.mw.jco.JCO.Table;importweaver.conn.RecordSet;importweaver.gener
20、al.TimeUtil;importweaver.general.Util;importweaver.interfaces.workflow.action.Action;importweaver.soa.workflow.request.Property;importweaver.soa.workflow.request.RequestInfo;importweaver.soa.workflow.request.Cell;importweaver.soa.workflow.request.DetailTable;importweaver.soa.workflow.request.Row;pub
21、lic class XSJGSPHXAction implements Action /生成sapconn对象 privateJCO.Clientsapconnection = new SAPConn().getConnection(); private Log log = LogFactory.getLog(XSJGSPHXAction.class.getName();public Log getLog() return log; public void setLog(Log log) this.log = log; /回写执行的方法自己编写的方法public String executex
22、r(String requeststring ) String FLAG=E; String MESSAGE=; String requesthq=requeststring; if(requesthq.indexOf($)0) SAPConnSAPConn = new SAPConn(); String liststr=requesthq.split($);/获取主表明细表数据 if(liststr.length2) /System.out.println(liststr0); return E/数据有误vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!; String m
23、liststr=liststr0;/主表信息数据以;分割字段格式为:key:value String dliststr=liststr1;/明细表多条明细以分割字段和主表相同 /获取主表信息 String mzdliststr=mliststr.split(;);/获取主表明细表数据 String Requestid=; String Workflowid=; String XXDBH=; /System.out.println(suoyou +requesthq+主表信息-+mliststr+mx-+dliststr); for(int i=0;i0) System.out.println(
24、 -+keyvalue); String keyvaluezh=keyvalue.split(:); if(keyvaluezh.length2) continue; String key=keyvaluezh0.toUpperCase(); String value=keyvaluezh1; if(key.equals(requestidValue) Requestid=value; else if(key.equals(workflowidValue) Workflowid=value; else if(key.equals(VBELN) XXDBH=value; try String PZZD=批准; JCO.Function function = SAPConn.excuteBapi(ZXSRUT);/执行sap的写入接口 function.getImportParameterList().setValue(PZZD,LV_VERSION); JCO.Tableinput_table = null; input_table = function.getTableParameterList().getTable(GT_XSRET); /获取明细表中数据 mxxx+=posnr:+getkeyzhi(field5864_
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1