云平台与OData的集成-如何处理传入的$ filter查询参数

2020-08-31 05:05发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们定义了一个iFlow,它公开了OData服务并使用了接收方OData服务。 我们希望允许最终用户使用$ filter查询参数来查询此iFlow OData服务。 我们希望iFlow能够从传入的URL中提取$ filter,并将其传递给接收方OData服务。

我们如何做到这一点?

我们认为解决方案涉及以下内容:

$ {header.filter}在" OData Receiver"连接的"处理"选项卡的"自定义查询选项"字段中

但是我们不知道要使用什么$ {header}属性,也找不到任何能够明确标识可用$ {header}属性的文档。

对此事的任何指导表示赞赏。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们定义了一个iFlow,它公开了OData服务并使用了接收方OData服务。 我们希望允许最终用户使用$ filter查询参数来查询此iFlow OData服务。 我们希望iFlow能够从传入的URL中提取$ filter,并将其传递给接收方OData服务。

我们如何做到这一点?

我们认为解决方案涉及以下内容:

$ {header.filter}在" OData Receiver"连接的"处理"选项卡的"自定义查询选项"字段中

但是我们不知道要使用什么$ {header}属性,也找不到任何能够明确标识可用$ {header}属性的文档。

对此事的任何指导表示赞赏。

付费偷看设置
发送
15条回答
黑丝骑士
1楼 · 2020-08-31 05:34.采纳回答

大家好,

好消息! 在Odata发送方通道之后,将以下代码添加到默认groovy脚本中,此问题已解决。

if(uriInfo.getFilter()!= null){

def filter = uriInfo.getFilter()。getExpressionString();

if(odataURI.size()!= 0)

odataURI.append(urlDelimiter);

odataURI.append(" \ $ filter =")。append(filter);

log.logErrors(LogMessage.TechnicalError,"过滤器值:" + filter);

}

此后,将$ {Header.odataURI}添加到OData接收器适配器的查询选项中。


me_for_i
2楼-- · 2020-08-31 05:45

Hello Anil,

您能解释一下如何使用HTTP * sender *通道获取传入的OData查询URL吗? 在我们的用例中,我们有一个HTTP * receiver *通道,该通道正在接收带有OData查询参数的传入OData请求。 对于我们来说,*发件人*是解决方案的一部分是没有意义的。

---安德鲁(Andrew)

微wx笑
3楼-- · 2020-08-31 05:52

您好,Virendra,

请参阅博客 https://blogs.sap.com/2019/08/12/odata-service-in-cpi-for-beginners/#Query

它说明了如何提取每个OData查询选项并将其用作Integration流中的消息头。

BR
Saranya

一周热门 更多>