公司在做物料主数据管理系统的时候,有时候会出现 物料 主数据缺失的情况,经过各种考量,准备通过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的同事 详细咨询后发现 缺少了 权限,这不能不说是一个没有考虑周全的地方,希望后面 相关程序提供者 更新的时候 能够弥补 下 此缺陷。
分享到:
相关推荐
JCO提供了与SAP Remote Function Call (RFC)接口的连接,使得非SAP系统(例如Java应用)可以调用SAP的BAPIs(Business Application Programming Interfaces)和自定义RFC函数模块。 描述中提到的"jco3.0.5"是指SAP ...
1. **远程函数调用(RFC)**:JCo3允许Java应用通过RFC协议调用SAP系统中的ABAP函数模块。RFC是一种标准化的接口技术,使得外部系统可以像调用本地函数一样调用SAP的功能。 2. **BAPI调用**:BAPI(Business ...
3. RFC调用:通过SAP JCO3提供的API调用SAP系统中的RFC函数。 4. BAPI交互:理解和使用BAPI接口,实现业务逻辑的自动化。 5. IDoc处理:理解IDoc结构,创建和解析IDoc,实现数据交换。 6. 错误处理:编写适当的错误...
本文将详细讲解如何在不同的操作系统环境下(Windows 32位、Windows 64位和Linux)使用SAPJCO3进行Java调用SAP的开发。 一、SAPJCO3简介 SAPJCO3是SAP Java Connector的第三版,它提供了一个API,使得Java应用程序...
在Kettle中,你可以执行各种操作,如读取SAP表数据、调用RFC(远程功能调用)、执行BAPI(Business Application Programming Interface)函数等。这些操作可以通过SAP的Step进行,例如SAP Get Table、SAP Call RFC或...
SAP JCo是一个双向通信接口,提供了丰富的API,使得Java应用能够无缝地调用SAP的BAPI(Business Application Programming Interface)和其他RFC(Remote Function Call)功能。在Java应用中使用SAP JCo,开发者可以...
JCo3是该库的第三版,它支持Java SE和Java EE环境,允许开发者在Java应用中调用SAP的ABAP函数模块、BAPIs(Business Application Programming Interfaces)以及IDocs(Intermediate Documents)。 1. **安装与配置...
接下来,可以创建`SAPFunction`对象来调用SAP的函数模块,或者创建`SAPIDoc`对象来处理IDocs。 总的来说,`sapjco3.jar`及其相关文件构成了一个完整的SAP Java连接解决方案,允许Java开发者利用SAP的功能进行集成...
例如,要调用SAP的`BAPI_USER_GET_DETAIL`函数模块获取用户详情,代码如下: ```java JCoDestination destination = JCoDestinationManager.getDestination("SAP_SYSTEM"); JCoFunction function = destination....
它提供了API,使得开发者可以创建RFC客户端,调用SAP系统的BAPIs和其他函数模块。 2.2 JCO使用 使用JCO,首先需要配置连接参数,如系统ID、主机、端口等。然后,通过JCO创建连接,建立会话,并实例化RFC客户端。...
这个库包含了必要的接口和类,使得开发人员能够在Java应用中调用SAP的功能模块、BAPIs(Business Application Programming Interfaces)和其他业务逻辑。 描述中提到的"windows下sapjco3.jar"表明这是专为Windows...
而JCO(Java Connector Architecture)是SAP提供的一种用于Java应用程序与SAP系统间通信的接口,使得开发者能够通过Java语言实现对SAP系统的操作和数据交互。在这个"jco方式跟sap对接"的主题中,我们将深入探讨如何...
Java使用JCO调用RFC(Remote Function Call)是将Java应用程序与SAP系统进行集成的常见方式。在本文中,我们将深入探讨这个过程,包括如何传递不同类型的参数以及解析返回的格式。 首先,JCO(Java Connector)是...
SAP JCo 3提供了一组API,使Java程序能够调用SAP ABAP(Advanced Business Application Programming)函数模块、BAPI(Business Application Programming Interface)以及IDoc(Intermediate Document)进行数据交换...
它基于RFC(Remote Function Call)技术,使得开发者可以方便地调用SAP系统中的函数模块,包括BAPIs。JCO提供了客户端和服务器两部分,客户端用于Java应用程序,服务器端则运行在SAP系统上。 ### BAPI的使用 1. **...
通过 JCo,开发者可以调用 BAPI 方法来实现对 SAP 数据的增删改查操作。 3. **安装与配置**:SAP Java JCo 3.1.3 包含必要的库文件,如 `sapjco3-ntamd64-3.1.3.zip`,这通常包含 JAR 文件(Java 类库)、示例代码...
它允许外部系统调用SAP内部定义的函数模块,就像它们是本地方法一样。通过JCo,Java应用可以像调用本地方法一样调用这些RFC。 5. BAPI (Business Application Programming Interface): BAPI是SAP系统提供的一套...
- 调用SAP ABAP函数模块:通过创建和配置远程函数调用(RFC)连接,可以调用SAP系统中的ABAP函数模块。 - 实现BAPI(Business Application Programming Interface)调用:BAPIs是SAP提供的标准化接口,允许外部系统...
RFC是一种SAP特有的远程调用协议,允许跨网络透明地调用SAP系统的函数模块。BAPI则是一组标准接口,用于集成SAP系统中的业务逻辑。 在"macos sapjco3"的标签下,我们可以理解到这个版本是为MacOS用户准备的。SAP ...
- 执行SAP功能模块(本例中为`BAPI_MATERIAL_GET_DETAIL`),并通过设置输入参数和处理输出结果来完成数据交互。 ```java class SAPLogon { public JCO.Client mConnection; public JCO.Repository ...