| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> SAP接口编程 之JCo3.0系列(06) - Jco服务器端编程 -> 正文阅读 |
|
[开发工具]SAP接口编程 之JCo3.0系列(06) - Jco服务器端编程 |
Jco 服务器端编程的作用是为了实现从 SAP 系统中调用外部 Java 程序提供的服务,将 Java 作为服务器。Jco Client 端编程是 Java 调用 ABAP,正好相反。但 Jco 服务器端编程是在 SAP 设计的框架下实现 ABAP 调用 Java,并不是并不是完全自由式的 ABAP 调用 Java。具体来说,要满足两个条件:
我们解释一下这两个条件。 SAP 与 Java 服务器建立通讯1. SAP 提供网关服务建立通讯通道由 SAP 提供网关服务,Java 服务器基于网关 (Gateway host)、网关服务号码(Gateway service number ) 以及 Program Id 与 SAP 系统连接。
为了便于理解,我们对上面所说的内容进行比较详细的讲解。什么是 SAP 网关呢? 按 SAP 官方文档的说法:
也就是说,SAP 网关负责执行 SAP 系统与外部系统的 RFC 服务,基于 TCP/IP 协议。SAP 提供的网关服务,在 SAP 系统中通过事务码 SMGW 进行查看。在命令栏中输入 SMGW 进入如下界面 。 接下来,通过事务码 SM59 配置连接类型为 TCP/IP 的外部连接。我在 SAP 系统中配置名为 JCOSERVER01 的 TCP/IP 连接(Type 为 T 表示 TCP/IP 类型的连接)。
2. SAP 与 Java 服务器连接配置完成后,如果 Java 服务器启动,可以进行连接测试。在 SM59 界面中点击左上角的 Connection Test 按钮。如果 Java 服务器没有启动,系统显示 Prgoram XXX not registered,如下图。
ABAP 提供函数原型ABAP 并不能调用 Java 任意的方法,必须先在 ABAP 中定义函数原型(包括函数名、参数等),并且 Java 要对这个函数进行注册。我们以一个 SAP 系统已有的函数 STFC_CONNECTION 为例。这个函数并没有什么实际的功能,函数只是提供参数,实现调用的时候,发送一个消息,返回一个消息。我们来看看 SAP 系统中的函数定义: 入参: 出参: 对 SAP 有函数原型的函数,在 JCo Server 中进行注册: SAP 的函数不一定要有实现,但一定要有原型。 Jco server programming 详解jar 包和项目文件结构在PC 上安装 JCo 3.0,然后将 sapjco3.dll 和 sapjco3.jar 文件放在同一个文件夹下,假设用 IDEA 作为 IDE ,选中文件夹,右键 Add as library。项目文件结构:
Java 配置文件Java 配置文件包括 JCo 连接 SAP 的配置和 java 作为 server 的配置。JCo 连接 SAP 的配置放在 ECC.jcodestination 文件中,配置项如下: Java Server 的配置放在 SERVER.jcoserver 文件中: 实现 JCo Server下面的代码实现一个简单的 JCo Server,在 Server 中注册了 STFC_CONNECTION 函数。 JCo server 处理 ABAP 发送的消息ABAP 调用 Java 服务在 ABAP 中编写如下代码: 程序运行测试运行 Java 程序,启动 Java Server, 在控制台中的信息如下: 然后再运行 ABAP 程序,Java 服务器显示收到消息: SAP 系统也打印出从 Java 返回的消息: 源码stonewm/sap_interface_jco3: SAP Interface JCo3.0 demo 参考SAP Gateway - SAP Documentation |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/23 4:07:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |