首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在现有应用程序中使用SAP /4HANACloudSDK访问OData服务?

如何在现有应用程序中使用SAP /4HANACloudSDK访问OData服务?
EN

Stack Overflow用户
提问于 2018-10-02 22:13:25
回答 1查看 1.2K关注 0票数 7

我在SAP平台Cloud上有一个Java应用程序,它通过调用系统中的API (OData服务)与SAP /4HANACloud(我公司的ERP系统)集成。我听说了SAP /4HANACloudSDK,它使得这样的场景更加容易。

我如何利用SAP S/4HANACloudSDK?目前,我调用SAP S/4HANA的代码看起来像这样(简化并连接在一起),用于检索产品主数据。我自己创建了S4Product类作为响应的表示。在此之前,baseUrlauthHeader是通过与SAP平台上的目标服务对话来确定的。

代码语言:javascript
运行
复制
StringBuilder url = new StringBuilder(baseUrl);
url.append("/sap/opu/odata/sap/API_PRODUCT_SRV/A_Product");
url.append("&$select=Product,CreationDate");
url.append("&$filter=ProductType eq '1'");
url.append("&$top=10");

URL urlObj = new URL(url.toString());
HttpURLConnection connection = (HttpURLConnection) urlObj.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Authorization",authHeader);

connection.setDoInput(true);

final InputStreamReader in = new InputStreamReader(connection.getInputStream());
String response = CharStreams.toString(in);

List<S4Product> result = Arrays.asList(new Gson().fromJson(response, S4Product[].class));

现在,我被要求与商业伙伴做类似的事情。如何使用SDK对业务伙伴OData服务执行此操作?如果我想使用SDK,是否必须创建一个新的应用程序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 22:43:19

使用SAP /4HANACloudSDK的Java虚拟数据模型,代码将被如下所示的代码所取代。

代码语言:javascript
运行
复制
final List<Product> products = new DefaultProductMasterService()
    .getAllProduct()
    .select(Product.PRODUCT, Product.CREATION_DATE)
    .filter(Product.PRODUCT_TYPE.eq("1"))
    .top(10)
    .execute();

这将处理您以前手动完成的所有操作,在一个流畅和类型安全的API中。在本例中,类Product由SAP /4HANACloudSDK提供,无需自己创建。它提供了一个包含所有字段的实体类型的Java表示,我们正在使用这些字段来定义select和filter查询选项。

对于你关于商业伙伴的问题,它看起来非常类似于此。

代码语言:javascript
运行
复制
final List<BusinessPartner> businessPartners = new DefaultBusinessPartnerService()
    .getAllBusinessPartner()
    .select(BusinessPartner.BUSINESS_PARTNER /* more fields ... */)
    // example filter
    .filter(BusinessPartner.BUSINESS_PARTNER_CATEGORY.eq("1"))
    .execute();

顺便说一句,这还包括与目标服务对话和应用身份验证标头--您不再需要手动这样做了。

您可以在任何Java项目中使用SAP /4HANACloudSDK。只需包含依赖项com.sap.cloud.s4hana.cloudplatform:scp-cf (用于Cloud )和com.sap.cloud.s4hana:s4hana-all

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

https://stackoverflow.com/questions/52617170

复制
相关文章

相似问题

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