BTP 简单的 iflow 调用 OP 的 OData 服务

作者:SAPTAB 约 7 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:Cloud Architecture, 云架构
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)

**点击蓝字关注我们**

富强 民主 文明 和谐

自由 平等 公正 法制

爱国 敬业 诚信 友善

**不念过** **去**

**START**

**不畏将来**

接着上次从SAP API Hub上参考创建的OData 服务: [ OData -SAP OP 中使用SAP API Hub的API

](http://mp.weixin.qq.com/s?__biz=MzUxODI4MTQyMg==&mid=2247484140&idx=1&sn=e8b3c792b056d3d62e1c31b658b2e6c8&chksm=f98a034dcefd8a5b05b7282e8358c81f2e4acf508d03da72c49aa913a1eb7b5ddf8db050fb62&scene=21#wechat_redirect)

今天玩一下如何在BTP平台上来调用这个OData服务

首先我们进入到BTP平台-Integration suite

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击它,进去,我们选择第一个页签,进行集成设计和开发

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击右边设计按钮,如果没有包得话需要点击右上方按钮创建一个包

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

输入名称和技术名称

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

然后点击右上方保存按钮,然后点击部件页签,选择Integration Flow

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

然后填入iFlow的名称和标识,点击确认

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

如下图我们创建好了一个空白默认的iFlow,点击进入

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

如下图所示,我们可以看到有发送端,集成进程和接收端,由于简单演示,我们就不需要发送端了,同时我们采用计时器来驱动事件,点击右上角编辑按钮

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

删除Sender 和 Start

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击上方事件按钮,选择计时器,放置到Integration Process中

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

选择功能:运行一次 (既部署的时候运行一次),然后将Start Time 1 和end 连起来

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

接着选择外部调用->请求回复

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

然后选择连接器

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

,连接Request Reply 1 到 Receiver

这时会弹出选择适配器类型,我们选择OData->

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击Connection 填上地址,这个地址就是OP 的OData外网暴露的地址,如果你的OP的OData服务无法进行外网暴露的话,请使用cloud

connector 连接到OP

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

这里先保存下配置,对于Authentication,我们需要用OP 账号密码来登陆,所以需要先创建一个(Security Material) ,点击监控器

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击安全材料这个页签,

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击用户凭据:输入凭据名称(PO_OData_User),账号和密码(sap 登陆账号密码)

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击部署,用户账号就创建好了

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

我们返回刚才的IFlow 继续操作,选择Basic类型的权限,然后填入我们刚才创建的security material

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

切换到Processing页签,选择Get方法,然后选择Resource Path

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

选择远程数据源,然后点击步骤2,我们可以在选择实体中选择需要的数据集

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

同时选择所要的字段

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击完成即可

我们就可以看到再Query Option中自动生成了所需的字段

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

接下来我们选择消息转换器->脚本->Groovy脚本, 这个脚本的目的时获取返回的消息

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

我们可以点击创建按钮,直接生成一个系统默认的Groovy脚本进行修改

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

我们需要对其中的内容进行修改->

import com.sap.gateway.ip.core.customdev.util.Message;import java.util.HashMap;def Message processData(Message message) { //Body def body = message.getBody(java.lang.String) as String; def messageLog = messageLogFactory.getMessageLog(message); def properties = message.getProperties(); messageLog.setStringProperty("Logging","Printing Payload as Attachment"); messageLog.addAttachmentAsString("[2]Payload after mapping", body , "text/xml"); return message;}

到此我们就完成了BTP上的所有配置了,然后点击保存->部署

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

然后我们点击 监控器

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

可以看到刚才触发的IFlow 已经完成

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

点击附件中的文件,我们可以查看返回的消息

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

可以看到返回的PO信息

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

**不念过** **去**

**END**

**不畏将来**

BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图
BTP 简单的 iflow 调用 OP 的 OData 服务 - 封面图

**SAP ABAP TAB**

微信号 : TAB_JXZHU

后台回复'ABAP'免费领取学习资料

长按二维码关注我们

SAPTAB

关于作者:SAPTAB

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「BTP简单的iflow调用OP的OData服务.md」整理生成,仅用于内部技术分享与学习交流。