【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布

8 篇文章 62 订阅


本示例以SAP端作为服务端,封装RFC函数,发布一个WebServices服务地址,供外部系统调用。

1、SAP端RFC开发

1.1、创建函数组

(1)登录SAPGUI,执行事务码 SE37,进入函数构建器:初始屏幕
(2)菜单栏→转到→函数组→创建组
在这里插入图片描述
输入函数组名称以及描述,点击保存
在这里插入图片描述
选择包,点击保存(请忽略函数名后面的下划线,此处为演示又新建一个)
在这里插入图片描述
挂载请求,点击保存,函数组创建完成。
在这里插入图片描述

1.2、创建函数

输入功能模块名称,点击创建
在这里插入图片描述
输入第一步中创建的函数组,以及函数描述,点击保存
在这里插入图片描述
忽略系统提示,点击对勾,进入函数构建器
在这里插入图片描述
在这里插入图片描述
切换至属性页签,务必勾选处理类型中的“远程启用的模块”,否则无法被远程调用,PO中就没法导入该RFC。
在这里插入图片描述

1.3、添加函数输入输出参数

参数类型:
导入:仅输入参数,此处定义两个输入参数,IV_NAME和IV_AGE,类型为CHAR10和I,以及描述。根据需要设置字段是否可选,远程调用函数,输入输出参数必须勾选“值传递”
导出:仅输出参数,此处定义一个输出参数,IV_HELLO,类型为CHAR100。
表:输入输出参数,此处未定义。
在这里插入图片描述
在这里插入图片描述

1.4、编写函数源代码

编写函数源代码如下:
在这里插入图片描述

1.5、进行函数测试

保存,激活
在这里插入图片描述
执行测试
在这里插入图片描述
填写入参值
在这里插入图片描述
执行结果如下
在这里插入图片描述

2、PO端接口配置

2.1、PO端ESB配置

(1)登录PO,点击 Enterprise Services Builder,进入Java版ESB配置客户端
在这里插入图片描述
在这里插入图片描述

(2)导入 RFC 对象
在 SC_ERP(对应SAP系统)下 Imported Objects,右键→Import of SAP Objects
在这里插入图片描述
输入 SAP 登录信息,点击 Continue
在这里插入图片描述
点击 RFC 前的三角形,展开 RFC 列表
在这里插入图片描述
利用搜索,定位到我们需要导入的RFC函数对象,勾选后,点击 Continue
备注说明:如果搜索不到需要的RFC对象,那可能是因为RFC没有激活或者是没有设置为远程启用的模块。
在这里插入图片描述
点击 Finish,完成导入,关闭
在这里插入图片描述
在这里插入图片描述
激活导入的 RFC 函数对象
在这里插入图片描述

(3)创建 Namespace (仅首次需要)
在 SC_ERP(对应SAP系统)下新建 Namespace,右键→New→Namespace
在这里插入图片描述
输入 Namespace 名称,点击 Create
在这里插入图片描述

(4)在 Namespace 下创建文件夹,右键→Create Folder
在这里插入图片描述
修改为自己所需的文件夹名称,如:
在这里插入图片描述

(5)在文件夹下创建 SI,右键→New→Service Interface
在这里插入图片描述
首先创建接收方(对SAP而言)SI,对应Category为Inbound,作为ERP接收外部接口消息的服务。
在这里插入图片描述
在Message Type 处,拖入 RFC 对应的输入和响应
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存
在这里插入图片描述
同上,再创建发送方(对SAP而言)SI,对应Category为Outbound,作为ERP返回接口响应消息的服务。
在这里插入图片描述
保存,激活 SI
在这里插入图片描述

2.2、PO端IB配置

返回PO主界面,点击 Integration Builder,进入Java版IB配置客户端
在这里插入图片描述
展开 Communication Comonent Without Party,其中 Business System 和 Business Component 都可以定义SAP系统以及外部系统等通讯对象。一般 Business System 用于定义 SAP系统(如BS_ERP_300),Business Component 用于定义非SAP系统(如此处定义的外部调用方 BC_TEST)
在这里插入图片描述

(1)创建SAP端 BS(仅首次需要,一般由PO Basis初始设置)
创建BS的通讯通道 CC
在这里插入图片描述
定义消息接收通道(Receiver)
在这里插入图片描述
配置如下:
在这里插入图片描述
定义消息发送通道(Sender),配置如下:
在这里插入图片描述
PO访问SAP协议相同时,多个接口可以公用相同的通讯通道,无需单独定义,故以上定义为通用通道。

BS_ERP_300会自动包含SC_ERP中定义的SI,包括Receiver和Sender,这是由PO Basis在SLD中设置的,无需手动添加。如下图所示:
在这里插入图片描述
在这里插入图片描述

(2)创建非SAP端 BC(仅首次需要)
在这里插入图片描述
定义消息发送通道(Sender),配置如下:
在这里插入图片描述
BC_TEST 添加 服务接口 SI
在这里插入图片描述
在这里插入图片描述
激活所有对象。

(3)创建 IC
在这里插入图片描述
在这里插入图片描述
配置如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存,激活,查看WSDL
在这里插入图片描述
复制WSDL URL,发给外部系统调用,如SoapUI
在这里插入图片描述

3、SAP端代理服务开发

(1)登录SAPGUI,执行事务码 Sproxy,进入对象导航界面,定位到前面创建的接收消息的SI,双击或右键→Generate,创建代理类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存,激活,双击进入实施类
在这里插入图片描述
双击方法,编写具体的消息处理代码
在这里插入图片描述
在这里插入图片描述
保存,激活,返回创建代理类页面,执行以测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改入参报文 XML,如下
在这里插入图片描述
执行
在这里插入图片描述
返回结果如下:
在这里插入图片描述
代理类开发完成,实现对RFC的调用。

4、SoapUI测试

将PO端配置最后获取的WSDL URL,发送给SoapUI端,可以进行接口调用测试。
(1)新建项目(略)
(2)项目右键,Add WSDL
在这里插入图片描述
贴入复制的WSDL URL,点击 OK
在这里插入图片描述
在这里插入图片描述
双击 Request1,获取入参结构
在这里插入图片描述
调整入参,点击执行
在这里插入图片描述
获取正确的返回结果,测试完成。

5、常见接口配置错误

PO端常见返回错误为:Server Error,
在这里插入图片描述
具体错误信息,需要查看PO日志
在这里插入图片描述
类似报值错误的情况,还有 IV_AGE 输入字母,输入小数,输入空格时。
若要保留默认值,可以输入0,或直接删除该参数项,如下图传参方式:
在这里插入图片描述
当删除必输字段 IV_NAME 时,会报如下错误:
在这里插入图片描述
如果是如下错误提示,则可能是sproxy代理类中调用 RFC 时的出入参数类型不匹配,需要先进行类型转换后,再给 RFC 参数赋值(这种错误可以在配好sproxy后,提前进行测试排除)。
在这里插入图片描述

6、PO的发布

PO没有类似SAP S4的在线传输机制,主要使用手工导出&导入方式进行内容发布。

首先需要发布SAP端的RFC请求,然后发布PO的ESR配置;其次发布SAP端的Sproxy请求,最后发布IB配置。

(1)SAP发布请求

使用事务码:SE10,STMS,具体操作步骤略。

(2)开发环境导出ESR配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
预览,确认本次导出的内容,
在这里插入图片描述
确认无误,则点击 Finish,保存文件到本地
在这里插入图片描述

(3)开发环境导出IB配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)测试环境导入ESR配置

选择导入文件,激活即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(5)测试环境导入IB配置

选择导入文件,补充信息,激活即可
在这里插入图片描述
主要补充以下信息
在这里插入图片描述

(6)SoapUI测试

同上,略。

原创文章,转载请注明来源-X档案

  • 41
    点赞
  • 189
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要调用 SAPRFC 接口,需要使用 SAP 提供的 Java Connector(SAP JCo)库。在使用 SAP JCo 调用 RFC 接口时,需要在 SAP JCo 的配置文件中设置系统 ID(System ID),以便正确地连接到 SAP 系统。 要配置 SAP JCo 的系统 ID,需要进行以下步骤: 1. 打开 SAP JCo 的配置文件 sapjco3.properties,该文件通常位于应用程序的 classpath 下。 2. 在 sapjco3.properties 文件中添加以下配置项: ``` jco.client.sysnr=<系统编号> jco.client.client=<客户端> jco.client.user=<用户名> jco.client.passwd=<密码> jco.client.lang=<语言> jco.client.ashost=<应用服务器主机名> jco.client.saprouter=<SAP 路由器> ``` 其中,<系统编号> 是 SAP 系统的编号,<客户端> 是 SAP 客户端的编号,<用户名> 和 <密码> 是 SAP 用户的登录信息,<语言> 是登录时使用的语言代码,<应用服务器主机名> 是 SAP 应用服务器的主机名,<SAP 路由器> 是可选的 SAP 路由器配置。 3. 在 Java 代码中使用 SAP JCo 的 API 调用 RFC 接口时,可以使用以下代码获取 SAP JCo 的配置信息: ``` JCoDestination destination = JCoDestinationManager.getDestination("<destination>"); ``` 其中,<destination> 是 SAP JCo 的目标名称,可以在 sapjco3.properties 文件中配置。 4. 使用 SAP JCo 的 API 调用 RFC 接口时,需要使用 SAP JCo 的函数模块名称和函数模块的输入参数,例如: ``` JCoFunction function = destination.getRepository().getFunction("<function_module>"); if (function == null) { throw new RuntimeException("<function_module> not found in SAP system."); } function.getImportParameterList().setValue("<parameter_name>", "<parameter_value>"); function.execute(destination); ``` 其中,<function_module> 是 SAP RFC 函数模块的名称,<parameter_name> 和 <parameter_value> 是函数模块的输入参数名称和值。 以上是 Java 调用 SAP RFC 接口配置系统 ID 的基本步骤。具体的配置和调用方法可能会因不同的 SAP 系统和 RFC 接口而有所不同,需要根据实际情况进行调整和修改。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值