盛煌娱乐
关于盛煌娱乐

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

发布日期:2024-09-02 09:15    点击次数:61

   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测试

同上,略。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

Powered by 盛煌娱乐 @2013-2022 RSS地图 HTML地图