日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JCO与bapi的联合使用

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JCO与bapi的联合使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JCO簡介
JCO是Java Connector的簡稱,它封裝了JAVA-enabled RFC,實現了基于RFC的BAPI與JAVA接口。它提供結構化的BAPI調用,目前不支持面向對象的開發。
JCO使用
1)類導入
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);
  • }
  • //關閉連接
  • mConnection.disconnect();
  • 復制代碼

    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);
  • }
  • 復制代碼

    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);
  • 復制代碼

    4)設定輸入參數
  • JCO.Field SalesDocumentField = jcoFunction.getImportParameterList().getField("SALESDOCUMENT");
  • ? ???SalesDocumentField.setValue(iSalesDocument);
  • 復制代碼

    5)執行BAPI
  • mConnection.execute(jcoFunction);
  • 復制代碼

    6)處理“return”參數
  • JCO.Structure jcoBapiReturn = jcoFunction.getExportParameterList().getStructure("RETURN");

  • ? ?? ?if ((jcoBapiReturn.getField("TYPE").getValue()).toString().equals("E"))
  • ? ?? ???throw new Exception();
  • 復制代碼

    7) 獲得返回值
  • JCO.Table jcoStatusInfo = jcoFunction.getTableParameterList().getTable("STATUSINFO");
  • 復制代碼

    8)最后是異常的捕獲與處理

    JCO開發建議
    基于JAVA語言的特征,建議以如下的方式開發JCO應用。

    1)主要的類:
    輸入參數封裝到java bean類中,并統一進行有效性檢查。
    針對所要調用的BAPI建立代理類,將BAPI的業務功能封裝起來。
    建立一個解釋類,負責調用業務功能類,并將參數從java beans傳遞到業務功能類。
    2)流程:
    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的JCO与bapi的联合使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。