SAP接口编程 之 JCo3.0系列:JCo Client Programming

java链接SAP工具类 先将jar引入 <!-- 链接SAP --> <dependency> <groupId>com.github.easonjim</groupId> <artifactId>com.sap.conn.jco.sapjco3</artifactId> <version>3.0.11</version> </dependency> 因为我将SAP登录名都放在数据库表里面保存了,所以不想一样做的可以 阅读详情

JCo3.0调用SAP函数的过程

大致可以总结为以下步骤:

  • 连接至SAP系统
  • 创建JcoFunction接口的实例(这个实例代表SAP系统中相关函数)
  • 设置importing参数
  • 调用函数
  • 从exporting参数或者table参数获取数据

代码:

package jco3.demo4;

import org.junit.Test;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoField;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoRepository;
import com.sap.conn.jco.JCoStructure;

public class RFC
{    
    public void getCompanyCodeDetail(String cocd) throws JCoException
    {
        // JCoDestination instance represents the backend SAP system
        JCoDestination dest = JCoDestinationManager.getDestination("ECC");

        // JCoFunction instance is the FM in SAP we will use
        JCoRepository repository = dest.getRepository();        
        JCoFunction fm = repository.getFunction("BAPI_COMPANYCODE_GETDETAIL");
        if (fm == null){
            throw new RuntimeException("Function does not exists in SAP system.");            
        }    

        // set import parameter(s)
        fm.getImportParameterList().setValue("COMPANYCODEID", cocd);

        // call function
        fm.execute(dest);

        // get company code detail from exporting parameter 'COMPANYCODE_DETAIL'
        JCoStructure cocdDetail = fm.getExportParameterList()
                                    .getStructure("COMPANYCODE_DETAIL");

        this.printStructure(cocdDetail);        
    }    

    private void printStructure(JCoStructure jcoStru)
    {        
        for(JCoField field : jcoStru){
            System.out.println(String.format("%s\\t%s", 
                    field.getName(), 
                    field.getString()));
        }
    }

    @Test
    public void test() throws JCoException
    {
        this.getCompanyCodeDetail("Z900");
    }
}

JCoFunction接口说明

  • JCoFunction是一个接口,代表SAP系统的函数

  • JCoFunction包含importing参数,exporting参数,changing参数,table参数。分别使用getImportParameterList方法,getExportParameterList方法,getChangingParameterList方法和getTableParameterList获得。这些方法的返回值都是JCoParameter类型

  • JCoFunction.execute方法实际执行函数

如何创建JCoFunction对象

上面的代码是第一种创建JCoFunction实例的方法:

JCoRepository repository = dest.getRepository();    
JCoFunction fm = dest.getRepository().getFunction("BAPI_COMPANYCODE_GETDETAIL");

如果我们不关心JCoRepository,也可以这样写:

JCoFunction fm = dest.getRepository().getFunction("BAPI_COMPANYCODE_GETDETAIL");

第三种方法是使用JCoFunctionTemplate.getFunction方法,JCoFunctionTemplate也是一个接口,代表SAP函数的meta-data。

JCoFunctionTemplate fmTemplate 
            = dest.getRepository().getFunctionTemplate("BAPI_COMPANYCODE_GETDETAIL");
JCoFunction fm = fmTemplate.getFunction();

JCoStructure接口

BAPI_COMPANY_CODE_GETDETAIL函数的COMPANYCODE_DETAIL参数是一个结构,刚才我们看到遍历结构所有字段的方式:

private void printStructure(JCoStructure jcoStru)
{        
    for(JCoField field : jcoStru){
        System.out.println(String.format("%s\\t%s", 
                field.getName(), 
                field.getString()));
    }
}

因为JCoStructure实现了Iterable接口,所以可以采取上面的办法进行迭代。另外一种方法进行遍历:

private void printStructure2(JCoStructure jcoStructure)
{
    for (int i = 0; i < jcoStructure.getMetaData().getFieldCount(); i++){
        System.out.println(String.format("%s\\t%s", 
                jcoStructure.getMetaData().getName(i),
                jcoStructure.getString(i)));
    }
}
SAP 安装SAP JCo3 在Linux和Solaris环境下,复制sapjco3.so到任何一个目录中去,例如:/usr/local/jco3, 然后修改/etc/profile文件,把目录/usr/local/jco3加入到环境变量LD_LIBRARY_PATH中。1. 复制sapjco3.dll到c:/windows/system32/目录,或者, 复制sapjco3.dll到目录D:/Resources/Libraries/SAPJCo/JCO_304,很简单,32位的JVM选择32位的JCO,的sapjco3.so。 阅读详情

相关推荐

SAP JCo3库文件在32/64位系统上的安装与配置

本文还有配套的精品资源,点击获取 简介:本指南解释了如何在不同位数的操作系统上安装和配置SAP Java Connector (SAP JCo)库,这是一个Java库,用于Java应用程序与SAP系统间的通信。解决Kettle工具在32位或64位系统上可能遇到的兼容性问题,详细介绍了下载对应版本的SAP JCo库,库文件的存放位置以及如何正确设置环境变量和Java参数,确保...

weixin_29867767的博客 1199

sapjco3使用详解

上篇文章看完之后,感觉很清晰了,于是我下载了sapjco3,准备自己亲自写一遍,可是,等我下载下来准备开写的时候, 发现了我在JCO中并没有发现createClient()等方法,查阅了很多文章后发现,貌似sapjco3和以前的写法不太一样。于是, 在这里,我将sapjco3的用发展示出来,都做了详细的解释。 import java.io.File; import java.io.FileO

qq_30698633的博客 3680

SAP JCo 3库安装与配置实战指南

本文还有配套的精品资源,点击获取 简介:SAP Java Connector (SAP JCo) 是Java应用程序与SAP R/3系统或其他基于ABAP的应用进行通信的关键组件。本教程详细介绍了如何安装和使用"SAPJco3.zip"压缩包中的SAP JCo 3版本,特别是重点讲解了"sapjco3.dll"文件的放置和配置。通过将"sapjco3.dll"放置于Java...

weixin_35706255的博客 2569

java 连接sap rfc接口 jco3 linux docker部署

linux环境部署jco3需要依赖两个文件 sapjco3.jar和libsapjco3.so 注意jar包版本最好用最新版,否则可能报找不到jco相关类异常。本文用的版本是com.sap.conn.jco.sapjco3-3.0.14.jar 1.我们把这两个文件放到linux服务器或者挂载到云平台 目录:/usr/local/tools/jco3 A.放到linux服务器设...

lida1001的博客 1508

SAP JCo3:全平台兼容的Java连接器

SAP JCo(Java Connector)是SAP公司提供的一个用于Java应用与SAP系统进行交互的中间件。自2002年发布以来,SAP JCo已成为连接SAP系统和Java应用程序之间不可或缺的桥梁。最新版本的SAP JCo3,带来了更高的性能和更好的用户体验,为开发者提供了更有效的开发工具以及更为丰富的编程接口。SAP系统是一个全球领先的企业资源规划(ERP)软件,由德国公司SAP SE开发。SAP软件被设计为协助企业高效管理业务运营和客户关系。

weixin_42513928的博客 700

Java与SAP系统交互:sapjco3.dll和sapjco3.jar安装与配置指南

SAP Java Connector(简称 JCo)是SAP公司推出的一个用于Java应用与SAP系统的通信的中间件产品。JCo允许Java应用程序通过远程函数调用(RFC)接口访问SAP ABAP服务器的功能。它作为一个桥接工具,克服了不同系统架构间的差异,使得Java应用可以无缝地与SAP系统集成。JCo提供了一种高效的、面向连接的通信机制,使得开发者可以将SAP系统的业务逻辑和数据集成到Java企业应用中。

weixin_42571280的博客 2483

SAP接口编程 之 JCo3.0系列(02) : JCo Client Programming

JCo3.0调用SAP函数的过程大致可以总结为以下步骤: 连接至SAP系统 创建JcoFunction接口的实例(这个实例代表SAP系统中相关函数) 设置importing参数 调用函数 从exporting参数或者table参数获取数据

王敏的专栏 2488

jco接口调用方式

jco是一种 webservice调用方式

sapjco3 开发与部署环境设置 Could not initialize class com.sap.conn.jco.JCo] with root cause

sapjco3 开发与部署环境设置 windows 环境设置 1.sapjco3.dll 需要与 sapjco3.jar 在同一目录 2.设置系统环境变量,将sapjco3所在目录加入系统环境变量 3.根据自己的操作系统版本选择对应的sapjco3包 32位系统 例如: 新建环境变量 变量名: JAVA_SAPJCO 变量值: E:\sapjco3\sapjco3-win32 将新建的 JAVA_SAPJCO 环境变量加入 系统环境变量

秋̶᭄ꦿ攻城狮࿆ྂ 7278

从XSA到Linux应用:Petalinux与Vitis的嵌入式开发全流程解析

本文详细解析了从XSA文件到Linux应用的嵌入式开发全流程,重点介绍了Petalinux与Vitis工具链的使用技巧和实战经验。通过XSA硬件描述、Petalinux工程搭建、系统镜像优化及Vitis开发配置等关键步骤,帮助开发者高效完成ZYNQ平台开发,解决常见问题并提升开发效率。

weixin_29195217的博客 192

迈创Cameralink采集卡与MIL软件集成开发实战指南

本文详细介绍了迈创Cameralink采集卡与MIL软件的集成开发实战指南,涵盖硬件安装、驱动配置、MIL软件深度设置及图像采集处理等关键步骤。特别适合工业视觉检测和医疗影像领域,通过优化配置和性能调优,实现高速稳定的图像处理。

weixin_29204205的博客 423

Java使用Jco连接SAP操作详解

最近加入的新项目需要和SAP进行接口对接,想尝试将项目代码中关于SAP连接部分剥离出来,可能存在些错误,欢迎大家指正!!!

weixin_44894196的博客 5265

Python实战:如何用高德API批量获取POI数据(附完整代码)

本文详细介绍了如何使用Python通过高德API批量获取POI数据,包括API基础准备、核心功能模块设计、高级功能实现及实战应用案例。文章提供了完整代码示例,帮助开发者高效解决商业网点分析、公共设施规划等实际项目中的数据采集需求。

stem5的博客 326

windows环境报错Could not initialize class com.sap.conn.jco.JCo] with root cause

SAP外部依赖包报错问题总结

qq_38864315的博客 2408

别再踩坑了!手把手教你用EB Tresos Studio创建Autosar MCAL工程(含模块配置避坑指南)

本文详细介绍了使用EB Tresos Studio创建Autosar MCAL工程的完整流程,包括工程创建前的关键准备、模块配置的避坑指南以及工程验证与代码生成的实用技巧。通过实战案例和黄金准则,帮助开发者高效完成MCAL工程创建,避免常见错误,提升开发效率。

weixin_42536058的博客 444

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3113

java使用Jco连接SAP

JCO为我们提供了另外一种连接的方法:DestinationDataProvider,通过它我们就可以将一个连接变量信息存放在内存里。 import java.util.HashMap; import java.util.Properties; import com.sap.conn.jco.JCoDestination; import com.sap.conn.jco.JCoDestina...

V_Come_On的博客 2753

如何实现chrome谷歌浏览器多开(独立环境 独立cookie)

由于各种各样的原因,你可能需要在一个电脑登录某个平台,比如一个电脑登录3个公众号,或者3个知乎等等。最简单的方案是,直接安装3个不同的浏览器,比如一个谷歌浏览器,一个火狐浏览器,一个 Edge 浏览器。这个方案也能解决,但如果想多开10个呢?安装10个不同的浏览器也能解决,但感觉这样比较复杂,另外一方面安装太多的应用,会导致电脑卡顿。这里给大家介绍,我在 Win 和 Mac 系统下的躲开解决方案。Win 系统下的解决方案最为简单,原理就是给不同的谷歌浏览器,指向不同的用户存储路径即可。

lzqial1987的专栏 1万+

java项目调用SAP函数报错

SAP

qq_38864315的博客 1559

43_AI短片实战第十六弹:AIGC补充特写镜头——首尾帧衔接与多图抽卡技巧

本文介绍了使用Templa AI平台生成"怪兽爬车"特写镜头并衔接"甩尾摔下"动作的完整流程。首先通过AI生成4张怪兽趴在车顶的特写画面,重点选择展示怪兽与车顶关系的构图(16:9比例)。然后将选定的首帧图与已有尾帧图输入AI,生成7秒左右的过渡视频,实现从"稳定趴车"到"开始摔落"的自然衔接。整个过程展示了单图抽卡策略、首尾帧选择标准,以及如何利用AI生成时间进行其他剪辑任务的并行处理方法。最终产出包括特写首帧图、过渡视频文件和更新后的剪辑项目。

Open 79

Hermes Agent 安装部署完全指南

Hermes Agent安装部署指南提供了两种安装方式:一键脚本安装和手动分步安装。该AI助手支持多平台运行(Linux/macOS/WSL2),核心功能仅需Git作为前置依赖,其他依赖如Python、Node.js等均由安装脚本自动处理。文档详细介绍了系统要求、依赖管理、配置目录结构、环境变量设置以及10个手动安装步骤,并提供了功能模块化选项,用户可根据需求选择安装语音交互、浏览器自动化等扩展功能。安装完成后可通过hermes doctor命令验证环境,并通过交互式向导完成初始化配置。

简简单单Onlinezuozuo 2623

关于SAP sapjco3远程调用失败

1.需要配置【sapjco3.dll】到C:\Windows\System32 本人上传下载地址 链接:https://pan.baidu.com/s/1Z4gAXokNIK7MsAgDcI0NRQ 提取码:ffm9 2.配置maven 坐标 <dependency> <groupId>com.sap.conn</groupId> <artifactId>jco</artifactId> <version>3.0

Amewin的博客 7903

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

springboot maven项目引入并打包本地JAR

之前在 springboot maven项目打包SAPJCO3.JAR一文中介绍的打包方案会导致jar包改名,这里介绍另一种方法。 pom.xml <dependencies> <dependency> <groupId>com.sap.conn.jco</groupId> <artifactId>sapjco3</artifactId> <version>3.1.2</versio

路过君的博客 2892

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: SAP接口编程 之 JCo3.0系列:JCoDestination
下一篇: SAP接口编程 之 JCo3.0系列:Table参数
SAPmatinal
博客等级 码龄12年 3万+粉丝 2291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值