java调用ABAP

功能:java调用ABAP接口

分析:java通过jco连接器调用ABAP结构(我采用的是SAP JCO)。

环境搭建:1:拷贝librfc32.dll到C:/WINDOWS/system32目录下。

                    2:拷贝sapjco.jar(sapjco.jar位于D:/Program Files/SAP/IDE/IDE70/eclipse/plugins/com.sap.mw.jco_2.0.0/lib目录下)到项目环境中。

程序代码:

import com.sap.mw.jco.IFunctionTemplate;
import com.sap.mw.jco.JCO;
import com.sap.mw.jco.JCO.Structure;

public class TutorialConnect1 {

 JCO.Client mConnection;
 JCO.Repository mRepository;
 public TutorialConnect1() {

  try {
   // Change the logon information to your own system/user
   mConnection = JCO.createClient("600", // SAP client
     "zzwanghy", // userid
     "1234qwer", // password
     null, // language
     "10.209.3.16", // application server host name
     "00"); // system number
   mConnection.connect();
   //System.out.println(mConnection.getAttributes());
//   连接R/3系统代码结束
   
//  调用RFC接口代码如下:

   JCO.Function function = this.createFunction ("BAPI_COMPANYCODE_GETLIST"); 
   
//   function.getImportParameterList().setValue("C0209","CUSTOMER_NUMBER");//客户代号
//            function.getImportParameterList().setValue( "1000", "SALES_ORGANIZATION");//销售组织
           
            mConnection.execute(function); //执行函数
//            Structure structure = function.getTableParameterList().getStructure(0);
            JCO.Table Order = function.getTableParameterList().getTable("COMPANYCODE_LIST");//.getTable(0);//.getTable("COMP_CODE");
           
            for(int i=0;i<Order.getNumRows();i++){
             Order.setRow(i);
             System.out.println(Order.getString("COMP_CODE")+"     " +Order.getString("COMP_NAME"));
            }
           
//            调用RFC接口代码结束
           
   mConnection.disconnect();
//   断开R/3系统
  } catch (Exception ex) {
   ex.printStackTrace();
   System.exit(1);
  }
 }
 public  JCO.Function createFunction (String name) throws Exception {
  
//  System.out.println(mConnection);
  mRepository = new JCO.Repository ("SAPJCorep", mConnection);
     try {

        IFunctionTemplate ft =mRepository.getFunctionTemplate (name.toUpperCase ());
        if (ft == null)
           return null;
        return ft.getFunction ();

  }catch (Exception ex) {

        throw new Exception ("Problem retrieving JCO.Function object.");

    }

  }

 public static void main(String args[]) {
  new TutorialConnect1();
 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值