生活随笔
收集整理的這篇文章主要介紹了
JCO与bapi的联合使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
JCO簡(jiǎn)介 JCO是Java Connector的簡(jiǎn)稱(chēng),它封裝了JAVA-enabled RFC,實(shí)現(xiàn)了基于RFC的BAPI與JAVA接口。它提供結(jié)構(gòu)化的BAPI調(diào)用,目前不支持面向?qū)ο蟮拈_(kāi)發(fā)。 JCO使用 1)類(lèi)導(dǎo)入 import com.sap.mw.jco.*; 2)建立R3連接,有兩種方法: a.持久連接 //申明連接 JCO.Client mConnection; // 初始化連接 mConnection = JCO.createClient("001", // SAP client "<userid>", // userid "****", // password "EN", // language (null for the default language) "<hostname>", // application server host name "00"); // system number //建立連接 try { mConnection.connect(); } catch (Exception ex) { ex.printStackTrace(); System.exit(1); } //關(guān)閉連接 mConnection.disconnect(); 復(fù)制代碼 b.連接池方式 static final String POOL_NAME = "Pool"; JCO.Pool pool = JCO.getClientPoolManager().getPool(POOL_NAME); if (pool == null) { OrderedProperties logonProperties = OrderedProperties.load("/logon.properties"); JCO.addClientPool(POOL_NAME, // pool name 5, // maximum number of connections logonProperties); // properties mConnection = JCO.getClient(POOL_NAME); System.out.println(mConnection.getAttributes()); } catch (Exception ex) { ex.printStackTrace(); } 。。。。。。 finally { JCO.releaseClient(mConnection); } 復(fù)制代碼 3)獲得BAPI方法 JCO.Repository mRepository; mRepository = new JCO.Repository("ARAsoft", mConnection); IFunctionTemplate ft = try{ mRepository.getFunctionTemplate(“BAPI_SALESORDER_GETSTATUS”); } catch (Exception ex) { throw new Exception("Problem retrieving JCO.Function object."); } ? ?? ?// Create a function from the template ? ???jcoFunction = new JCO.Function(ft); 復(fù)制代碼 4)設(shè)定輸入?yún)?shù) JCO.Field SalesDocumentField = jcoFunction.getImportParameterList().getField("SALESDOCUMENT"); ? ???SalesDocumentField.setValue(iSalesDocument); 復(fù)制代碼 5)執(zhí)行BAPI mConnection.execute(jcoFunction); 復(fù)制代碼 6)處理“return”參數(shù) JCO.Structure jcoBapiReturn = jcoFunction.getExportParameterList().getStructure("RETURN"); ? ?? ?if ((jcoBapiReturn.getField("TYPE").getValue()).toString().equals("E")) ? ?? ???throw new Exception(); 復(fù)制代碼 7) 獲得返回值 JCO.Table jcoStatusInfo = jcoFunction.getTableParameterList().getTable("STATUSINFO"); 復(fù)制代碼 8)最后是異常的捕獲與處理 JCO開(kāi)發(fā)建議 基于JAVA語(yǔ)言的特征,建議以如下的方式開(kāi)發(fā)JCO應(yīng)用。 1)主要的類(lèi): 輸入?yún)?shù)封裝到j(luò)ava bean類(lèi)中,并統(tǒng)一進(jìn)行有效性檢查。 針對(duì)所要調(diào)用的BAPI建立代理類(lèi),將BAPI的業(yè)務(wù)功能封裝起來(lái)。 建立一個(gè)解釋類(lèi),負(fù)責(zé)調(diào)用業(yè)務(wù)功能類(lèi),并將參數(shù)從java beans傳遞到業(yè)務(wù)功能類(lèi)。 2)流程: |
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的JCO与bapi的联合使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。