一命速通国服 CPI 部署全流程二 CPI 相关接口开发

作者:郑德鼎 约 9 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

# 一命速通 国服CPI部署全流程 二——CPI相关接口开发

原创 郭翔 [ 建广技师 ](javascript:void\(0\);)

__ _ _ _ _

一命速通 国服CPI部署全流程 二——CPI相关接口开发

第八步 CPI调用 SAP RFC以及透传HTTP接口服务

https://blog.csdn.net/qq_41787379/article/details/134145374

参考上面大佬的操作,你可以很轻松的将一个rfc函数,包装成一个http接口让外围系统去调用。

以下示例为大家展示最小的开发量实现接口的代理

创建RFC函数的CPI代理

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

添加一个Integration Flow

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

输入名称,标识默认和名称一致 点击添加并在编辑器中打开

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

通常我们发布的接口都是restful协议,通过body中的负载将值传入RFC函数中,这里先点击右上角的编辑,进入编辑模式

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

然后点击连线

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

将sender和start连接

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

弹窗中我们选择https

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

点击https的线,可以打开下方的窗口。如果窗口太小,可以鼠标向上拉

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

点击connection,在address中,创建一个外部接口可以调用的地址,我们这里就叫他test吧

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

这里地址前需要打斜杠 因为接口调用的时候,post,get协议可能会影响到后面真正接口地址的协议,可以取消CSRF Protected的勾

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

官方默认body负载40MB,不建议超过它,可能会导致CPI内存不足 如果body负载是json字符串,这里需要将json转换成xml

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

选择start和end中间的线,点加号

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

选择转换器中的JSON到XML转换器

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

如果你打算将json中的字段转换成xml不同名称的字段,可以勾选Use Namespace

Mapping,然后添加namespace的转换关系。这里我们默认json和xml名称一致,所以取消Use Namespace Mapping的勾选

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

转换后的xml需要一个根名称,系统默认是root,这里可以改成接口函数名+request的形式进行区分

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

转换xml之后,我们添加字段的mapping。选择线段点击加号。

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

选择映射中的消息映射

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

点击映射的图标,点击创建按钮

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

第一次的映射是传入到RFC函数中,所以这里需要在左侧添加XSD格式的文档,右侧添加函数的wsdl文件

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

现在是传入,所以我们要选上面的那一项,下面的是返回消息

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

现在直接拖动左侧的字段,连接右侧的字段就完成了字段的mapping

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

点击右上角确定,保存操作

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

接下来要添加接口的组件,在此之前,先调整下窗口,将Receiver拖动到下方,Integration Process窗口拉长,end往后调整

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

这次添加外部调用-请求回复

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

然后线段连接下面的Receiver

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

选择RFC 因为前面用到了WSDL,所以这里不需要考虑地址的问题,只需要在connection添加BTP平台上配置好的目标即可

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

接口调用结束,我们再加一次消息映射

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

这次左侧要添加RFC的WSDL中的返回部分,之前已经导入了wsdl文件,这里可以直接选择

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

直接字段拖动完成mapping

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

如果你需要返回json,这次还需要添加一个转换器

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

如图调整参数。如果xml结构中存在表,需要添加转换关系,具体教程见下文

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

到这里,接口基本创建完成。点击Integration Process窗口外的空白部分,唤出Integration

Flow窗口,General可以填入接口的描述信息,方便后续查看管理; Error

Configuration可以让接口的保存信息返回给调用者,否则你只能在CPI日志中查看错误消息

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

最后依次点击保存、另存为版本、部署,完成接口的发布

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

接口部署后可以在部署状态中跳转到地址页面。可以看到,接口地址是CPI的通用域名+http+自定义的地址。有点时候跳转过来,可能看不到地址,不着急,多刷新几次等待即可。

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

---

创建Restful接口的CPI代理 直接透传接口,操作就简单多了,参考上面的操作,直接进行外部调用-请求回复

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

拉线选择HTTP

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

如果是外网的接口,代理类型选择Internet,Address直接填写外网接口的地址即可,方法这里需要根据实际情况去选择。这里的地址支持HTTP和HTTPS两种协议。

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图
一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图

但如果你调用的是通过SCC代理的内网的接口地址,只能支持HTTP协议。代理地址选择On-Premise,Location

ID要根据连接的SCC系统输入对应的值。

一命速通国服 CPI 部署全流程二 CPI 相关接口开发 - 封面图.textContent = new Date().getFullYear();