当前位置: 首页 > news >正文

JAVA实现SAP接口

JAVA实现SAP接口

环境spring-boot+maven

1.maven依赖

        <dependency><groupId>com.github.virtualcry</groupId><artifactId>sapjco-spring-boot-starter</artifactId><version>3.1.4</version></dependency>

2.配置文件 application.yml

jco:clients:main-client:# 服务端地址ashost: 127.0.0.1# 系统编号sysnr: 00# 系统环境client: 800# 用户名user: userName# 密码password: userPwd# 最大连接数pool-capacity: 20# 最大连接线程数peak-limit: 50# 语言language: ZH

3.在项目resources目录下创建lib文件夹并放置如下文件
sap文件
4.测试方法(以下代码放main方法里执行一样)

@Testpublic void testSap(){//获取连接工厂JCoConnectionFactory connectionFactory = JCoConnectionFactoryProvider.getSingleton().getIfAvailable();//获取连接client (main-client(同名yml配置文件中配置名))JCoClient client = connectionFactory.getClient("main-client");try {// 1.获取调用 RFC 函数对象(FUNCTION_NAME:方法名)JCoFunction func = client.getFunction("FUNCTION_NAME");// 2.1 配置传入普通参数JCoParameterList importParameterList = func.getImportParameterList();importParameterList.setValue("NAME", "XIAOMING");importParameterList.setValue("AGE", "18");// 2.2 设置传入内表参数(IN_MATNR:内表名称)JCoTable inTable = func.getTableParameterList().getTable("IN_MATNR");inTable.appendRow();inTable.setValue("USERNO","001");inTable.setValue("USERNAME","张三");inTable.setValue("USERAGE",18);inTable.appendRow();inTable.setValue("USERNO","002");inTable.setValue("USERNAME","李四");inTable.setValue("USERAGE",20);// 3.调用并获取返回值func.execute(client.getDestination());// 4.1 获取普通参数JCoParameterList exportParameterList = func.getExportParameterList();//返回代码、返回消息String returncode = exportParameterList.getString("RETURNCODE");String returnms = exportParameterList.getString("RETURNMS");System.out.println("获取返回普通参数:");System.out.println(returncode);System.out.println(returnms);// 4.2获取 返回内表 (OUTDATA:返回表名称)JCoTable maraTable = func.getTableParameterList().getTable("OUTDATA");// 循环输出 Table 数据for (int i = 0; i < maraTable.getNumRows(); i++) {System.out.println("获取返回内表数据:");maraTable.setRow(i);String code = maraTable.getString("CODE");String msg = maraTable.getString("MSG");System.out.println("获取内表code:"+code);System.out.println("获取内表msg:"+msg);}} catch (Exception e) {e.printStackTrace();}}

以上方法名、参数、内表参数、返回参数、返回内表参数 皆为甲方文档中定义,我们只需要传值和取值即可

5.正式环境运行时需要再jdk中放置以下文件
在这里插入图片描述

相关文章:

JAVA实现SAP接口

JAVA实现SAP接口 环境spring-bootmaven 1.maven依赖 <dependency><groupId>com.github.virtualcry</groupId><artifactId>sapjco-spring-boot-starter</artifactId><version>3.1.4</version></dependency>2.配置文件 applic…...

华南理工大学811信号与系统考研分数线,招生人数,报考统计,考情分析,就业,真题,大纲,参考书,华工811

华南理工大学811信号与系统考研分数线&#xff0c;招生人数&#xff0c;报考统计&#xff0c;考情分析&#xff0c;就业&#xff0c;真题&#xff0c;大纲&#xff0c;参考书&#xff0c;华工811 华南理工大学811信号与系统考研分数线&#xff0c;招生人数&#xff0c;报考统…...

Android 字符串 占位符

在 Android 中&#xff0c;字符串中的 % 后面跟着的字符称为格式化占位符&#xff0c;用于指示在运行时将值插入到字符串中的位置&#xff0c;并指定插入的值的类型。常见的格式化占位符类型如下&#xff1a; %s&#xff1a;字符串占位符。它用于插入字符串值。 String name …...

vue页面添加水印(可用于H5,APP)

vue页面添加水印 背景实现新建vue组件使用效果 尾巴 背景 最近实现了一个小功能&#xff0c;就是给页面添加背景水印。实现思路就是定义一个宽高充满屏幕的组件&#xff0c;然后使用绝对定位并通过层级控制让水印显示在页面的最前端。 实现 代码相对简单&#xff0c;相信有点…...

下载git

1.官网下载可能会有访问失败 2.用其他的镜像源下载 快 准 狠 CNPM Binaries Mirror...

MSYS2 如何切换镜像源(附带脚本自动修改)

这篇文章将总结【如何切换MSYS2镜像】&#xff0c;其实比较简单&#xff0c;但还是记录一下吧。 下面示例中附带一个脚本&#xff0c;这样你就不用一个个手动修改了。 1. 镜像服务配置文件 MSYS2 的所有镜像服务配置&#xff0c;都在其安装路径下的etc/pacman.d目录下 可以看到…...

使用ICMP协议来判断UDP端口的存活状态

我们使用了原始套接字&#xff08;socket.SOCK_RAW&#xff09;来发送和接收ICMP消息&#xff0c;也就是通过模拟ICMP协议来进行UDP端口的探测。我们构造了一个简单的ICMP数据包&#xff0c;并将其发送到目标主机的特定端口。然后&#xff0c;我们等待接收目标主机返回的ICMP消…...

VUE for循环 默认选中第一条数据

for循环渲染列表默认选中第一条数据 点击其他选项切换数据 <div><div class"Subtitle" style"padding: 5px 40px;">项目清单</div><div class"project-manifest"><div v-for"(item, index) in project" :…...

小程序代码管理

“微信开发者工具”点击版本管理&#xff0c;然后点击代码管理会打开代码管理网页。 选择对应的项目组。 进来后点击创建项目。 输入git名称&#xff0c;然后选择命名空间&#xff0c;最后创建即可。 在刚才的“微信开发者工具”选择设置&#xff0c;然后添加远程。 输入名称&…...

RK3568-GPIO控制

RK3568-GPIO控制 1. Sysfs接口 实现逻辑 芯片的GPIO由芯片的GPIO控制器来管理&#xff0c;GPIO控制器封装在芯片内部&#xff0c;控制器的驱动芯片厂家已经写好了。RK3568有五组GPIO控制器&#xff0c;每组管理32个引脚&#xff0c;对应/dev下的gpiochip0~4的设备节点。 Lin…...

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书南京师范大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书南京师范大学图书馆...

【MySQL】什么是索引?如何选择索引类型?

什么是索引&#xff1f;索引原理索引的种类索引的优缺点感谢 &#x1f496; 在关系型数据库中&#xff0c;索引是一项重要的技术&#xff0c;它可以显著提高查询性能&#xff0c;加速数据检索过程。MySQL作为最流行的关系型数据库之一&#xff0c;也支持多种类型的索引 什么是索…...

第16章 服务安全控制

mini商城第16章 服务安全控制 一、课题 服务安全控制 二、回顾 1、MyBatis查询Apache Druid 2、热门商品处理 3、秒杀抢单操作 三、目标 1、Gateway限流 Gateway限流方案 基于令牌桶限流实现 2、Nginx限流 Nginx速率限流 Nginx并发量限流 3、Redis集群应用 Redis集群搭…...

面试问题总结(1)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…...

QUdpSocket Class

继承自 QAbstractSocket 类 QUdpSocket类提供UDP套接字。 UDP(用户数据报协议)是一种轻量级、不可靠、面向数据报、无连接的协议。它可以在可靠性不重要的情况下使用。QUdpSocket是QAbstractSocket的一个子类&#xff0c;它允许您发送和接收UDP数据报。 使用这个类最常见的方法…...

如何实现MongoDB数据的快速迁移?

作为一种Schema Free文档数据库&#xff0c;MongoDB因其灵活的数据模型&#xff0c;支撑业务快速迭代研发&#xff0c;广受开发者欢迎并被广泛使用。在企业使用MongoDB承载应用的过程中&#xff0c;会因为业务上云/跨云/下云/跨机房迁移/跨地域迁移、或数据库版本升级、数据库整…...

react中使用Modal.confirm数据不更新的问题解决

在使用Modal.confirm的时候今天发现了个疑惑的问题&#xff0c;为什么我明明从新set了数据而页面视图没有变化&#xff0c;查了一下官方文档找到了答案&#xff0c;解决了这个问题&#xff0c;特意在这里留下痕迹。 import { Button, Col, Form, Input, Modal, Radio, Row, Se…...

【vue】下拉、上拉刷新

我这里就把主要的下拉刷新的写一下&#xff0c;上拉是一样的道理&#xff0c;就不写了 <div class"talk_top" ref"listWrapper" id"listWrapper"><div class"loadingpic" v-loading"loading"></div><d…...

el-tree组件的锚点链接

el-tree部分&#xff1a; <el-tree:default-expand-all"true":data"anchorList":props"defaultProps"node-click"handleNodeClick"/> 组件内部部分&#xff1a; <div class"header" :id"content obj.id&q…...

汽车电气架构

文章目录 现阶段的汽车电气架构高压混合动力系统电子架构集成化&#xff08;E/E Architecture Integration&#xff09;车载以太网技术软件定义汽车 现阶段的汽车电气架构 当前最先进的汽车电气架构主要有以下几种&#xff1a; 48伏微混合系统&#xff08;48V Mild Hybrid Sys…...

OFA-VE环境部署:Python 3.11+PyTorch+CUDA一站式配置手册

OFA-VE环境部署&#xff1a;Python 3.11PyTorchCUDA一站式配置手册 1. 引言&#xff1a;认识OFA-VE视觉推理系统 OFA-VE是一个基于阿里巴巴达摩院OFA大模型构建的多模态推理平台&#xff0c;专门用于分析图像内容与文本描述之间的逻辑关系。这个系统采用了现代化的赛博朋克视…...

实战演练:基于快马平台,快速搭建一个软件密钥授权管理后台原型

实战演练&#xff1a;基于快马平台&#xff0c;快速搭建一个软件密钥授权管理后台原型 最近在开发一个软件授权管理系统时&#xff0c;发现很多项目都需要类似的密钥管理功能。正好用InsCode(快马)平台快速搭建了一个原型&#xff0c;以VMware16密钥管理为例&#xff0c;分享一…...

思源宋体CN终极指南:7款免费商用字体一站式解决方案

思源宋体CN终极指南&#xff1a;7款免费商用字体一站式解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业项目寻找高质量中文字体而烦恼吗&#xff1f;思源宋体CN字体…...

AVR机器人固件基座:负熵架构与确定性调度

1. 项目概述“Negentropic Base”是一个面向AVR微控制器平台的嵌入式固件基础框架&#xff0c;专为移动机器人&#xff08;尤其是轮式探测车、自主巡线小车、轻量级自主导航平台&#xff09;设计。其名称中的“Negentropic”&#xff08;负熵&#xff09;并非玄学术语&#xff…...

Anubi基金会为何押注Cassava?深度解析Web3数据层+社交任务的黄金组合

Anubi基金会战略投资Cassava&#xff1a;Web3社交任务与数据层的价值重构 当Web3世界从DeFi的金融实验转向更广泛的社会化应用时&#xff0c;基础设施的演进正在经历一场静默的革命。Anubi基金会近期对Cassava Network的战略投资&#xff0c;揭示了两个关键趋势&#xff1a;社交…...

新手友好:在快马平台通过可交互代码学习OpenClaw Onboard抓取基础

今天想和大家分享一个特别适合机器人领域新手的实践项目——通过InsCode(快马)平台学习OpenClaw Onboard框架的基础操作。作为一个刚接触机械臂控制的小白&#xff0c;我发现这个平台能直接把抽象的控制概念变成可交互的代码&#xff0c;学习效率提升了好几倍。 项目环境搭建零…...

Simulink SVPWM模块输出对不上?别慌,可能是这两个参数没设对(附24V电机FOC仿真案例)

Simulink SVPWM模块输出差异排查指南&#xff1a;从参数配置到波形修正 引言 在电机控制系统的仿真与开发过程中&#xff0c;Simulink的SVPWM模块是工程师们常用的工具之一。然而&#xff0c;许多开发者在对比自带模块与自建模型输出时&#xff0c;经常会遇到令人困惑的波形不一…...

HunyuanVideo-Foley创意音效作品展:突破传统声音设计的边界

HunyuanVideo-Foley创意音效作品展&#xff1a;突破传统声音设计的边界 1. 当AI遇见声音艺术 声音设计领域正在经历一场革命。传统Foley音效制作需要大量物理道具和录音设备&#xff0c;而AI技术的引入让声音创作突破了物理限制。HunyuanVideo-Foley作为新一代AI音效生成工具…...

GeoServer REST API实战:手把手教你用Python封装自己的批量发布工具

GeoServer REST API深度封装&#xff1a;Python自动化发布框架设计与实战 1. 为什么需要自定义GeoServer发布工具&#xff1f; 在GIS项目实施过程中&#xff0c;我们经常面临数百个地理数据文件需要快速发布的场景。传统手动操作不仅效率低下&#xff08;单个文件平均耗时2分钟…...

JAVA面试-equals与==的本质区别

Java中 与 equals() 的区别是面试和日常开发的核心知识点&#xff0c;其核心差异在于比较的对象&#xff1a; 是比较引用地址或基本类型的值&#xff0c;而 equals() 是比较对象的内容&#xff0c;但其默认行为与重写密切相关 。 为了清晰地理解&#xff0c;我们可以将比较场…...