Jco 调用SAP BAPI 函数 获取物料主数据详细信息

公司在做物料主数据管理系统的时候,有时候会出现 物料 主数据缺失的情况,经过各种考量,准备通过Jco 调用ABAP 函数获取所需信息,开发测试的过程中也发生了不少情况,经过分析,问题最终得到了解决,记录下来给大家参考。

1、创建项目SAP_PART_OBTAIN,并引入相关jar包(jco-3.0.jar),将 sapjco3.dll放入“c:\windows\system32” 目录下。jar 包和dll 文件下载需要有 SAP 账号,可向负责sap 的同事咨询获取。

2、SAP 通讯账号的配置,在项目的根目录下创建名称为“as_pool.jcoDestination”的文件,文件的具体内容如下:

jco.client.ashost=192.168.100.16
jco.client.sysnr=00
jco.client.client=800
jco.client.user= username
jco.client.passwd= password
jco.client.lang=en
jco.destination.pool_capacity=3
jco.destination.peak_limit=10

3、创建到SAP 的jco 连接,关键方法如下:

    public static synchronized void reConnection() {
try{
destination = JCoDestinationManager.getDestination("as_pool");
} catch (Exception e) {
e.printStackTrace();
}
}


其中的参数as_pool 就是步骤2创建的文件名。

4、建立连接后就 可以 跟sap 进行交互。

public static void main(String[] args) {
String functionName = "BAPI_MATERIAL_GET_ALL";//ABAP 函数名称
String partNo ="12345678"//参数
try {
destination = SAPConnector.getDestination();//建立连接
repository = destination.getRepository();
jCoFunction = repository.getFunction(functionName);
inputParams = jCoFunction.getImportParameterList();
inputParams.setValue("MATERIAL",partNo); // 设置输入参数的值
jCoFunction.execute(destination);
outputParams = jCoFunction.getExportParameterList();
//通过 SAP 提供的结构(structure)\表格(table)和 字段 来获取 数据,可在此封装成对象返回。

} catch (Exception e) {
e.printStackTrace();
}
}



5、其实 上述对于一般的开发者比较简单,在测试的过程中也发现了不少问题。
例如,在公司的平台上查询到的物料主数据信息通过 sap 获取不了,且没有
任何异常提示,最终跟 负责sap的同事 详细咨询后发现 缺少了 权限,这不能不说是一个没有考虑周全的地方,希望后面 相关程序提供者 更新的时候 能够弥补 下 此缺陷。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值