首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >S/4HANACloudSDK支持获取元数据而不是OData的实际实体吗?

S/4HANACloudSDK支持获取元数据而不是OData的实际实体吗?
EN

Stack Overflow用户
提问于 2017-12-15 12:12:08
回答 1查看 322关注 0票数 2

我正在尝试获取OData服务端点的元数据。我不感兴趣的是实体本身,而是元数据绑定到这个特定的实体。

我看到了一个useMetadata(Boolean boolean)方法,但默认情况下它被设置为true,它似乎什么也不做。

云连接sdk支持这个特性吗?

我目前使用的库是com.sap.cloud.sdk.odatav2.connectivity.ODataQueryBuilder

编辑:

用例是,我的团队目前正在开发一个应用程序来检查和自动化从提供者到S/4HANA的数据迁移过程。如果从元数据中获得的配置显示与我们的最佳实践不符,则应用程序将提示用户进行补救修复,进而可能会在数据复制过程中造成麻烦。该配置是通过元数据而不是OData API中的实体公开的。

例如,:如果客户希望将FOCustomer记录迁移到S/4HANA,他或她可能希望将FormalName属性的MaxLength设置为12,否则目标系统中的数据完整性可能会受到损害。我们对客户条目或FormalName中的实际内容并不感兴趣,而是对源系统中的客户设置的配置感兴趣,它在OData API中公开为元数据文档条目,如下所示:

<Property Name="name_defaultValue" Type="Edm.String" Nullable="true" sap:required="false" sap:creatable="true" sap:updatable="true" sap:upsertable="true" sap:visible="true" sap:sortable="true" sap:filterable="true" MaxLength="32" sap:label="Name"></Property>

在这种情况下,MaxLength被设置为32,而不是12,后者将被记录下来并提交给客户进行进一步的操作。

我们以前用过奥林戈。现在我们正在评估S/4SDK,因为它似乎提供了一个更精简的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-18 12:37:29

ODataQueryBuilder本身不支持独立的元数据检索。元数据仅在幕后使用,因此useMetadata()对您的用例没有帮助。

但是,考虑到设置了要从中检索元数据的目标,可以执行以下操作(本例中我的目标名为ErpQueryEndpoint ):

代码语言:javascript
复制
final String destinationUriString = DestinationAccessor.getDestination("ErpQueryEndpoint").getUri().toString();
final HttpClient httpClient = HttpClientAccessor.getHttpClient("ErpQueryEndpoint");
final URI uri = new URI(destinationUriString + "/sap/opu/odata/sap/NAME_OF_THE_API/$metadata");
final HttpResponse httpResponse = httpClient.execute(new HttpGet(uri));

这应该允许您以XML格式检索元数据。不过,您仍然需要使用Olingo解析它。

目前,我们不打算支持独立的元数据检索。但是,如果您愿意的话,您可以在我们的公共GitHub页面上打开一个问题,所以我们将来可能会考虑这个问题。

如果这回答了你的问题,或者你还有更多的问题,请告诉我!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47832168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档