点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我们定义了一个iFlow,它公开了OData服务并使用了接收方OData服务。 我们希望允许最终用户使用$ filter查询参数来查询此iFlow OData服务。 我们希望iFlow能够从传入的URL中提取$ filter,并将其传递给接收方OData服务。
我们如何做到这一点?
我们认为解决方案涉及以下内容:
$ {header.filter}在" OData Receiver"连接的"处理"选项卡的"自定义查询选项"字段中
但是我们不知道要使用什么$ {header}属性,也找不到任何能够明确标识可用$ {header}属性的文档。
对此事的任何指导表示赞赏。
大家好,
好消息! 在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接收器适配器的查询选项中。
大家好,
请参阅博客 https://blogs.sap.com/2019/08/12/odata-service-in-cpi-for-beginners/#Query
它说明了如何提取每个OData查询选项并将其用作Integration流中的消息头。
BR
Saranya
嗨维伦德拉,
触发iflow时,会创建一个Camel消息对象,这就是通过iflow传递的内容。
有"标头"值,"交换属性"值和消息对象的正文。
您可以使用content修饰符将Header数据和Exchange属性数据从Header值拉到主体中。
在"内容修改器"的"正文"标签中,您可以输入例如;
然后您将它们拉入人体。
。
1。 "我们认为该解决方案涉及以下内容:$ {header.filter}"
是的,只要消息对象中实际上有一个名为" filter"的标头,然后就可以使用$ {header.filter}来访问它。
。
2。 "但是,我们不知道要使用什么$ {header}属性,我们找不到任何能够明确标识可用$ {header}属性的文档。"
您可以使用Groovy脚本步骤将所有标头和属性传输到主体,然后根据需要在其中查看它们。 使用我为您创建的以下脚本来完善此功能:
。
您还可以将正文作为附件登录到MPL,然后可以对其进行查看。
此处说明了操作方法: https://blogs.sap.com/2017/01/09/hci-payload-logging-sorted-using-groovy-script /
凯文,你好
以上两个建议仍然给出相同的错误消息。
*实际上,这可能是由于原始答案中的导入缺少以下内容引起的:
我现在已经更新了原始答案,并添加了这个答案。
嗨,凯文,
我们现在能够将标头和属性的内容转储到日志中,但是,无法从日志中找到负责捕获通过url传递的过滤器值的任何键/变量。 例如,以下是当前OData服务iFlow的标题列表详细信息。
null accept-language en-US,en; q = 0.9,gu; q = 0.8
ODataContext org.apache.olingo.odata2.core.ODataContextImpl@501b8ee3 odataEntity客户ODataMethod GET_FEED odataURI空SAP_MessageProcessingLogID AFy_xY3nU4CZP0GUMwfhjwAyYXip脚本文件script2.gsh脚本文件类型groovy。 -对于50.101.108.120
将过滤器传递给常规HTTP集成流的相同尝试将检索以下标头内容,该内容似乎正确地在标头中传递了过滤器值,因为我们可以看到CeqHttpQuery中捕获了ID eq'RAVAL',如下所示。
空CamelHttpMethod GET CamelHttpPath CamelHttpQuery $ filter = ID%20eq%20%27RAVAL%27 CamelHttpUrl https://c0908-iflmap.hcisb.int.sap.eu2.hana.ondemand.com/http/pogo CamelServletContextPath/pogo SAP_MessageProcessingLogID AFy_bxZ9Qd5hRZKz6n53-3VDJF6c脚本文件 POGO_script.gsh scriptFileType groovy
..想知道如何在OData集成流程中获得像CamelHttpQuery这样的元素。
您好,Virendra,
最好立即与我们展开事件,以寻求进一步的帮助。
最好的问候
一周热门 更多>