云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

阿里云_阿里云arms_试用

小七 141 0

简介

在我上一篇使用OData适配器使用网关OData服务的博文中,物联网工程是什么,我介绍了OData适配器在使用NetWeaver网关OData服务时的用法。

当我深入研究使用OData适配器时,我发现适配器的几个OData相关功能在OData Channel Configuration Guide(OData频道配置指南)或任何其他SAP社区内容中都没有提及。

对于那些想试用此适配器的人,以下是我的一些发现,可能有助于您在自己的集成中使用适配器的更多功能。

OData扩展系统查询选项($expand)

与基于SOAP的web服务的"自由风格"模式定义不同,OData建模基于实体集以及它们之间的关系。通常,实体集结构本质上是平坦的,因此如果在单个响应中需要一个深层结构,我们可能需要查询一个实体集及其相关实体集。

$expand选项(在URI约定(OData版本2.0)的第4.6节中提到)允许返回实体集和其他指定的相关实体集。

OData适配器从设计上支持这种用法,配置和运行时透视图。让我们以公开的Northwind OData V2服务为例。对于此服务,实体集产品与类别和供应商相关。

使用HCI Operations Modeler,我们可以通过选择实体集并增加子级别来生成此服务的ESR模式。在下一个屏幕中,可以选择相关的实体集及其属性。

模式生成并上载到ESR后,可以查看关系和深层结构。

在通道配置中,可以在资源路径中配置$expand选项,如下所示:如下所示:-

?$expand=

即产品?$expand=Category,Supplier

在执行端到端测试时,我们可以看到相关实体作为一个深层结构包含在响应中。

OData Skip Token System Query Option($skiptoken)

设计同步服务时的一个关键考虑因素是负载的大小。OData服务也一样,当有太多的记录要返回时,它使用分页。这通常由$top和$skip选项组合处理。

另一种方法是使用$skiptoken选项(这里提到),数据分析与大数据,它返回一个"书签"供下一次调用服务时使用。这允许调用者返回上一次调用的最后一个点并从那里继续。

发现$skiptoken功能由适配器自动处理是一个有趣的发现。这意味着适配器将确定调用中是否返回跳过令牌,并在下一次调用中自动使用该值,直到返回所有记录(即在最后一次调用中不再返回跳过令牌)。然后适配器合并所有调用的所有响应,并将其作为单个响应返回给调用应用程序。

为了测试此功能,NetWeaver网关OData服务设计为在有更多记录要检索时返回跳过令牌。请注意,跳过令牌可以是任意字符串值,由OData逻辑生成和解释它。

当OData适配器的流量路由到Fiddler进行分析时,跟踪显示有多个对OData服务的调用。

对于每个调用,动态检索PI消息ID并作为$filter选项中的值之一填充。这有助于我们确认OData适配器确实正在从单个PI消息进行所有调用。在第一次调用的response部分,我们可以看到服务返回$skiptoken=1。

在随后的调用中,OData适配器自动在调用中添加$skiptoken=1作为参数。在此调用中,服务再次返回一个带有新"bookmark"值的跳过令牌。

在几个调用之后,在最后一个调用中(使用$skiptoken=4),物联网是什么意思,检索所有记录,什么是大数据概念,服务不再返回任何跳过令牌值。

在PI的消息监视器中,只能看到一个PI消息ID对(请求和响应)在OData适配器发出的多个调用中。

最后,大数据分析工具有哪些,在调用应用程序端,我们可以查看PI适配器的响应,它将所有调用合并为一个响应。