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

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

  • 1、SAP端RFC开发
    • 1.1、创建函数组
    • 1.2、创建函数
    • 1.3、添加函数输入输出参数
    • 1.4、编写函数源代码
    • 1.5、进行函数测试
  • 2、PO端接口配置
    • 2.1、PO端ESB配置
    • 2.2、PO端IB配置
  • 3、SAP端代理服务开发
  • 4、SoapUI测试
  • 5、常见接口配置错误
  • 6、PO的发布
    • (1)SAP发布请求
    • (2)开发环境导出ESR配置
    • (3)开发环境导出IB配置
    • (4)测试环境导入ESR配置
    • (5)测试环境导入IB配置
    • (6)SoapUI测试

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

1、SAP端RFC开发

1.1、创建函数组

(1)登录SAPGUI,执行事务码 SE37,进入函数构建器:初始屏幕
(2)菜单栏→转到→函数组→创建组
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第1张图片
输入函数组名称以及描述,点击保存
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第2张图片
选择包,点击保存(请忽略函数名后面的下划线,此处为演示又新建一个)
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第3张图片
挂载请求,点击保存,函数组创建完成。
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第4张图片

1.2、创建函数

输入功能模块名称,点击创建
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第5张图片
输入第一步中创建的函数组,以及函数描述,点击保存
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第6张图片
忽略系统提示,点击对勾,进入函数构建器
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第7张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第8张图片
切换至属性页签,务必勾选处理类型中的“远程启用的模块”,否则无法被远程调用,PO中就没法导入该RFC。
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第9张图片

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

参数类型:
导入:仅输入参数,此处定义两个输入参数,IV_NAME和IV_AGE,类型为CHAR10和I,以及描述。根据需要设置字段是否可选,远程调用函数,输入输出参数必须勾选“值传递”
导出:仅输出参数,此处定义一个输出参数,IV_HELLO,类型为CHAR100。
表:输入输出参数,此处未定义。
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第10张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第11张图片

1.4、编写函数源代码

编写函数源代码如下:
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第12张图片

1.5、进行函数测试

保存,激活
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第13张图片
执行测试
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第14张图片
填写入参值
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第15张图片
执行结果如下
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第16张图片

2、PO端接口配置

2.1、PO端ESB配置

(1)登录PO,点击 Enterprise Services Builder,进入Java版ESB配置客户端
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第17张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第18张图片

(2)导入 RFC 对象
在 SC_ERP(对应SAP系统)下 Imported Objects,右键→Import of SAP Objects
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第19张图片
输入 SAP 登录信息,点击 Continue
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第20张图片
点击 RFC 前的三角形,展开 RFC 列表
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第21张图片
利用搜索,定位到我们需要导入的RFC函数对象,勾选后,点击 Continue
备注说明:如果搜索不到需要的RFC对象,那可能是因为RFC没有激活或者是没有设置为远程启用的模块。
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第22张图片
点击 Finish,完成导入,关闭
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第23张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第24张图片
激活导入的 RFC 函数对象
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第25张图片

(3)创建 Namespace (仅首次需要)
在 SC_ERP(对应SAP系统)下新建 Namespace,右键→New→Namespace
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第26张图片
输入 Namespace 名称,点击 Create
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第27张图片

(4)在 Namespace 下创建文件夹,右键→Create Folder
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第28张图片
修改为自己所需的文件夹名称,如:
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第29张图片

(5)在文件夹下创建 SI,右键→New→Service Interface
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第30张图片
首先创建接收方(对SAP而言)SI,对应Category为Inbound,作为ERP接收外部接口消息的服务。
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第31张图片
在Message Type 处,拖入 RFC 对应的输入和响应
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第32张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第33张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第34张图片
保存
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第35张图片
同上,再创建发送方(对SAP而言)SI,对应Category为Outbound,作为ERP返回接口响应消息的服务。
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第36张图片
保存,激活 SI
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第37张图片

2.2、PO端IB配置

返回PO主界面,点击 Integration Builder,进入Java版IB配置客户端
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第38张图片
展开 Communication Comonent Without Party,其中 Business System 和 Business Component 都可以定义SAP系统以及外部系统等通讯对象。一般 Business System 用于定义 SAP系统(如BS_ERP_300),Business Component 用于定义非SAP系统(如此处定义的外部调用方 BC_TEST)
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第39张图片

(1)创建SAP端 BS(仅首次需要,一般由PO Basis初始设置)
创建BS的通讯通道 CC
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第40张图片
定义消息接收通道(Receiver)
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第41张图片
配置如下:
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第42张图片
定义消息发送通道(Sender),配置如下:
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第43张图片
PO访问SAP协议相同时,多个接口可以公用相同的通讯通道,无需单独定义,故以上定义为通用通道。

BS_ERP_300会自动包含SC_ERP中定义的SI,包括Receiver和Sender,这是由PO Basis在SLD中设置的,无需手动添加。如下图所示:
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第44张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第45张图片

(2)创建非SAP端 BC(仅首次需要)
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第46张图片
定义消息发送通道(Sender),配置如下:
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第47张图片
BC_TEST 添加 服务接口 SI
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第48张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第49张图片
激活所有对象。

(3)创建 IC
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第50张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第51张图片
配置如下:
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第52张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第53张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第54张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第55张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第56张图片
保存,激活,查看WSDL
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第57张图片
复制WSDL URL,发给外部系统调用,如SoapUI
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第58张图片

3、SAP端代理服务开发

(1)登录SAPGUI,执行事务码 Sproxy,进入对象导航界面,定位到前面创建的接收消息的SI,双击或右键→Generate,创建代理类
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第59张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第60张图片
在这里插入图片描述
保存,激活,双击进入实施类
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第61张图片
双击方法,编写具体的消息处理代码
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第62张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第63张图片
保存,激活,返回创建代理类页面,执行以测试
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第64张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第65张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第66张图片
修改入参报文 XML,如下
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第67张图片
执行
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第68张图片
返回结果如下:
在这里插入图片描述
代理类开发完成,实现对RFC的调用。

4、SoapUI测试

将PO端配置最后获取的WSDL URL,发送给SoapUI端,可以进行接口调用测试。
(1)新建项目(略)
(2)项目右键,Add WSDL
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第69张图片
贴入复制的WSDL URL,点击 OK
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第70张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第71张图片
双击 Request1,获取入参结构
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第72张图片
调整入参,点击执行
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第73张图片
获取正确的返回结果,测试完成。

5、常见接口配置错误

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

6、PO的发布

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

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

(1)SAP发布请求

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

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

【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第79张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第80张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第81张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第82张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第83张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第84张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第85张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第86张图片
预览,确认本次导出的内容,
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第87张图片
确认无误,则点击 Finish,保存文件到本地
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第88张图片

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

【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第89张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第90张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第91张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第92张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第93张图片

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

选择导入文件,激活即可
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第94张图片
在这里插入图片描述
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第95张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第96张图片
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第97张图片

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

选择导入文件,补充信息,激活即可
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第98张图片
主要补充以下信息
【SAP PO】SAP PO 接口配置完整教程之一RFC服务发布_第99张图片

(6)SoapUI测试

同上,略。

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

你可能感兴趣的:(SAP,PO,SAP,Abap,c#,服务器,microsoft)