1:先将sapjco.jar包导入项目。sapjco.jar是用来连接sap的通讯组件SAP Java Connector(JCO)。
2:用JCO.createClient接口方法创建一个连接对象com.sap.mw.jco.JCO.Client;连接需要的参数有:
jco.client.ashost,例子:"192.168.1.10" // 系统的IP地址
jco.client.client,例子: "700" // 要登录的客户端
jco.client.sysnr",例子: "03" // 系统编号
jco.client.user",例子: "xtbg" // 登录用户名
jco.client.passwd", 例子:"123456" // 用户登录口令
3:用连接对象的connect()方法进行sap连接。
4:判断该连接不为null并且处于活动状态,然后才能进行下一步。连接对象的isAlive()方法来获取是否处于活动状态,返回true代表活动,false代表非活动。
5:接着就需要获取一个“创库”对象(Repository) com.sap.mw.jco.JCO.Repository;new JCO.Repository("仓库名",连接对象);
6:用Repository的getFunctionTemplate("SAP函数名")方法从‘仓库’调用一个SAP函数 例如:"WRITE_LIST";//显示一个列表对象
7:从这个函数模板获得该SAP函数的对象,用SAP函数的getFunction()方法获取。
8:判断是否获取到了对象,如果对象==null,代表对象为空。
9:用对象的getTableParameterList().getTable("表名");方法获取获取出table接口里名为“表名”的表。
SAP中的MM(采购、库存管理、MRP、供应商评价等)模块里关于库存的常用表:
mbew--商品评估
mbewh--物料评估:历史
mard--物料的仓储位置数据
mardh--物料主储存位置段:历史
mslb--供应商的特殊库存O--供应商分包库存
mkol--特殊库存K/M--寄售(供应商)/供应商可退回包装
mska--特殊库存E--现有订单
msku--特殊库存V/W--客户处可退回包装/寄售(客户方)
mcha--批次
mchb--批量库存
10:最后使用for循环打印出表里的数据。
for (int i = 0; i < info_tab.getNumRows();i++)
{
info_tab.setRow(i);//设置指针位置,这个很重要
System.out.println(info_tab.getString("列名1"));
System.out.println(info_tab.getString("列名2"));
System.out.println(info_tab.getString("列名3"));
System.out.println(info_tab.getString("列名4"));
}