news 2026/2/5 21:00:22

【SAP-MOM项目】二、接口对接(上)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【SAP-MOM项目】二、接口对接(上)

目录

章节介绍:

一些前言:

RFC接口:

参数文档:

一、表参数作为导入参数时,参数结构如何设置

二、结构作为导入参数时,参数结构如何设置

三、单个参数作为导入参数时,参数结构如何设置

一些结尾:


章节介绍:

上一章节和大家分享了SAP系统和MOM系统的整体设计,说到两个系统之间的对接,必不可少的是系统之间的数据交互,说到数据交互那就肯定离不开系统的接口对接,所以第二章节就和大家分享SAP和MOM的接口对接,我会分成三个内容来讲,分别是

接口对接(上)——外围系统调用SAP的RFC接口,SAP如何创建RFC接口

接口对接(中)——外围系统调用SAP的RESTFUL接口,SAP如何创建restful接口

接口对接(下)——SAP调用外围系统的RESTFUL接口,SAP如何写代码调用

首先我们这一章节来讲【接口对接(上)——外围系统调用SAP的RFC接口,SAP如何创建RFC接口】

一些前言:

在这次的项目中,SAP几乎都是用的RFC接口来和外围系统对接,官方一点的理由呢是因为RFC接口是SAP系统中最稳定、效率最高、最具SAP特色的接口;而真实的理由是,RFC接口开发起来最简单,没错,就是“最简单”这个朴实无华的理由。

最初接收到开发任务时,我还在完善上一个项目的收尾工作,比如报表的效率优化啦、报错的提示啦、批量修改单据的功能开发啦之类的工作,然而还没等到我缓一缓,我就被通知——我需要在一周内完成十几个接口的开发,并且要测试完成。震惊,且真的不能接受!我甚至连开发申请都还没有接到啊喂!不行了,使出绝招,全部设计成RFC接口!

对于外围系统来说,连接SAP的RFC接口和RESTFUL接口的代码写法好像是不一样的,但是因为我们公司有个中间系统,就是ESB系统,所有的接口对接都会经过这个系统,当然也包括了SAP和MOM系统的对接,所以其实是SAP-ESB-MOM这样的接口交互,ESB系统呢,就可以很方便地将SAP系统的RFC接口发布成restful的形式来供MOM系统调用,所以不管我开发的是RFC接口还是RESTFUL接口,只要经过了ESB系统,那外围系统来调用,都可以看成是RESTFUL接口。

好的,前提已经讲完了,现在来讲RFC接口的开发

RFC接口:

首先,我们明确一下接口调用的方向,是MOM系统调用SAP系统,SAP系统接收到消息后进行数据返回。

以库存查询接口为例,MOM传输工厂编码和物料编码等信息给SAP,SAP查询对应库存后实时返回给MOM,我们先看一下参数文档,因为是MOM调用SAP,所以接口参数文档是由SAP提供。

下面就是我比较喜欢使用的参数文档格式:

这里将传入参数设置成了表参数,表明MOM可以一次性批量查询很多物料的库存数据,SAP系统中,接口如下:

打开SE37,创建接口,步骤在小白操作手册里面有讲,我们这次就直接看一下RFC接口长什么样子就行。

接口的属性要选择远程启用的模块,外围系统才可以连接

T_TAB的关联类型是SE11里面设置的结构参数

导出参数我一般像下面这样设置

这里需要说明一下, E_TYPE和E_MSEG和T_TAB是同一级的字段。

在源代码里面做一些传入数据检查,再写好传出参数的赋值就可以了。

RFC接口就和平时的接口差不多的,整体来说就挺简单快捷的。

参数文档:

(其实RFC接口开发是很基础的开发操作了,大家都比较熟悉,所以我在后面想重点分享的是关于参数文档的制作。外围系统的开发是要拿着咱们提供的参数文档进行开发耶,要是我们提供的参数结构错了,那会被骂死的吧!)

上面这个接口的参数和参数文档里面的参数结构对比一下看看:

一、表参数作为导入参数时,参数结构如何设置

T_TAB是表参数,会传入也会传出

要注意看{}大括号和[]中括号的位置,SAP系统里面的T_TAB表参数对应的是外围系统中的数组类型。

二、结构作为导入参数时,参数结构如何设置

我们拿另外一个接口来看,这个接口是MOM只会单条数据传入SAP,所以我没有设置成表参数,只设置了导入参数,导入参数里面关联了结构类型。

这时候参数文档里面是这样的:

可以很明显地看出来,SAP中,表参数和导入参数地区别,就是没有数组,没有[]中括号。

三、单个参数作为导入参数时,参数结构如何设置

我们继续换另一个接口来看,这个接口的导入参数是单个的,如下:

这时候我们看一下参数文档里面是如何设置的

这时可以很明显看出,只有一个{}大括号,没有其他结构了。

好了,上面三种参数,T_TAB、I_HEAD、I_WERKS...都可以作为导入参数,当表参数作为导入参数时,可以一次性批量多条传入;当导入参数作为传参时,就一次传一条;当单个参数作为传参的导入时,就单个赋值就可以。

一些结尾:

还有一些和外围系统交互时的小tips,比如SAP的内外部单位转换,ST/PC;前导零的补充;日志表的记录等,这些几乎在每个接口中都会用到,我们在处理外围系统数据的时候一定要注意一下。

那么本章就结束啦,下一章我们接着讲解【接口对接(中)——外围系统调用SAP的RESTFUL接口,SAP如何创建restful接口】,会用到SICF服务

这也是我第一次创建restful接口,我会详细拆解步骤的!这次的项目没有做webservice接口,所以不会讲解相关的开发步骤哦(其实webservice我也有点点搞忘了,但是restful和rfc已经够用了,let it go吧)~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 8:56:38

【挑选合适的开源前端项目是商城系统开发的重要一步】

挑选合适的开源前端项目是商城系统开发的重要一步。下面我为你梳理了主流的技术方案和具体的开源项目,并提供选型建议,希望能帮你快速定位适合的方案。 🛠️ 主流技术栈与框架 当前商城前端开发主要围绕以下两种跨端框架展开,它们…

作者头像 李华
网站建设 2026/2/5 9:21:16

中屹指纹浏览器底层技术解析:内核级Hook改造与多维度特征校验实现

2026 年主流平台的风控体系已完成从表层参数检测到底层逻辑校验的技术升级,传统依靠 JS 注入实现指纹篡改的方案,因存在调用栈异常、渲染逻辑矛盾、参数关联性缺失等问题,被风控系统识别的概率大幅提升。中屹指纹浏览器基于 Chromium 125 内核…

作者头像 李华
网站建设 2026/2/4 10:44:26

大模型本地部署:Windows PC上从零开始部署ChatGML-6B-int4量化模型

ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布的一个开源的对话机器人。6B表示这是ChatGLM模型的60亿参数的小规模版本,约60亿参数。 ChatGML-6B-int4量化…

作者头像 李华
网站建设 2026/2/5 17:06:27

资深AI技术专家20年总结,零AI基础掌握大模型、扩散模型、多模态模型

今天给大家系统地介绍了一本AIGC的各方面内容的书—《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》,这本书从基础知识到应用实践,从基本原理到案例分析,力求通过简洁明了的语言、清晰生动的例子,引导读…

作者头像 李华
网站建设 2026/2/5 3:22:44

Nginx:如何安装Nginx详细教程(总结一)

一、Nginx简介 1. 什么是Nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低&…

作者头像 李华
网站建设 2026/2/3 15:14:06

零基础入门 Spring Boot:从‘Hello World’到可上线的 Web 应用

零基础入门 Spring Boot:从‘Hello World’到可上线的 Web 应用 💡 适合谁? 完全没写过 Java Web 的新手,会安装软件、能看懂基础代码(如 System.out.println),想快速上手一个真实可用的后端框架…

作者头像 李华