点击此处---> 群内免费提供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接收器适配器的查询选项中。
嗨阿尼尔,
很高兴听到您使用此方法(-> http-Odata->)。
感谢您的信息。
您好,Virendra,
很高兴听到您已提取数据并将其记录下来。
我不确定如何对Odata调用(v4?)做同样的事情,我认为如果可能的话,它会增加一层额外的处理,但是要花一些时间和测试才能给出正确的答案 或建议。
我建议公开一个事件。
亲切问候
Virendra,
您在记录有效载荷时遇到问题吗?
在常规脚本步骤中尝试以下代码(确保它不是javascript步骤):
我现在也面临着同样的问题。 我已将iFlow置于跟踪模式并进行了验证。 没有标准标头可用于访问传入URL中的查询部分。
因此,作为替代方案,我正在使用HTTP发送方通道来获取查询部分。 现在,我可以将CamelHttpQuery标头访问到内容修饰符中的另一个标头变量中。 我使用groovy脚本仅隔离了我需要的值,并将其保存在属性中并在后续步骤中使用。
Hello Andrew,
之前,我尝试将OData用作发送方,但无法获取URL参数。 因此,由于我们没有设计限制,因此我将设计更改为HTTP作为发送方来捕获查询参数。
如果确定要使用OData适配器,请使用标头UriInfo标头,然后您可以将标头的值看到为com.sap.gateway.core.ip.odata.OGWUriInfo@xyza123。 使用groovy脚本,我们必须在此类上应用几种方法并获取过滤器参数。
感谢Kevin的回应。 为了了解iFlow执行过程中标头,属性和有效负载的内容,我们正在尝试获取日志作为附件,如上面的链接所述,并能够生成附件。 但是,当我们尝试打开它时,它失败并显示以下消息。 知道这里有什么问题吗?
"对日志附件的请求失败,并出现以下错误:服务器无效响应:无法解析消息。状态代码:500消息:
内部" target =" _blank"> http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
局部变量'is' "内部服务器错误
尝试调用从中加载的空对象的方法java.io.InputStream.read(byte [])时一周热门 更多>