PO接口完整配置
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 名称点击 Create4在 Namespace 下创建文件夹右键→Create Folder修改为自己所需的文件夹名称如5在文件夹下创建 SI右键→New→Service Interface首先创建接收方对SAP而言SI对应Category为Inbound作为ERP接收外部接口消息的服务。在MessageType处拖入 RFC 对应的输入和响应保存同上再创建发送方对SAP而言SI对应Category为Outbound作为ERP返回接口响应消息的服务。保存激活 SI2.2、PO端IB配置返回PO主界面点击 Integration Builder进入Java版IB配置客户端展开 Communication Comonent Without Party其中 Business System 和 Business Component 都可以定义SAP系统以及外部系统等通讯对象。一般 Business System 用于定义 SAP系统如BS_ERP_300Business Component 用于定义非SAP系统如此处定义的外部调用方 BC_TEST1创建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发给外部系统调用如SoapUI3、SAP端代理服务开发1登录SAPGUI执行事务码 Sproxy进入对象导航界面定位到前面创建的接收消息的SI双击或右键→Generate创建代理类保存激活双击进入实施类双击方法编写具体的消息处理代码保存激活返回创建代理类页面执行以测试修改入参报文 XML如下执行返回结果如下代理类开发完成实现对RFC的调用。4、SoapUI测试将PO端配置最后获取的WSDL URL发送给SoapUI端可以进行接口调用测试。1新建项目略2项目右键Add WSDL贴入复制的WSDL URL点击 OK双击 Request1获取入参结构调整入参点击执行获取正确的返回结果测试完成。5、常见接口配置错误PO端常见返回错误为ServerError具体错误信息需要查看PO日志类似报值错误的情况还有 IV_AGE 输入字母输入小数输入空格时。若要保留默认值可以输入0或直接删除该参数项如下图传参方式当删除必输字段 IV_NAME 时会报如下错误如果是如下错误提示则可能是sproxy代理类中调用 RFC 时的出入参数类型不匹配需要先进行类型转换后再给 RFC 参数赋值这种错误可以在配好sproxy后提前进行测试排除。6、PO的发布PO没有类似SAP S4的在线传输机制主要使用手工导出导入方式进行内容发布。首先需要发布SAP端的RFC请求然后发布PO的ESR配置其次发布SAP端的Sproxy请求最后发布IB配置。1SAP发布请求使用事务码SE10STMS具体操作步骤略。2开发环境导出ESR配置预览确认本次导出的内容确认无误则点击 Finish保存文件到本地3开发环境导出IB配置4测试环境导入ESR配置选择导入文件激活即可5测试环境导入IB配置选择导入文件补充信息激活即可主要补充以下信息6SoapUI测试同上略。