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

网站服务器_数据库源文件_新注册优惠

小七 141 0

本博客是初学者教程系列的一部分。

在上一篇教程中,我们首次体验了ODataV2数据源API。我们在一个简单的示例中了解了如何编写连接到现有simple odatav2服务的简单代码,并将检索到的简单数据公开为simple odatav4服务。在本教程中,大数据培训班哪个好,我们将进行下一步并实现所有支持的操作:READ、CREATE、UPDATE、DELETE、QUERY(CRUDQ)

Prerequisites

以便实现CUD(CREATE、UPDATE、DELETE)操作,我们需要访问支持写访问的odatav2服务。

一个好主意是使用SAP网关演示系统。我们需要快速注册,然后才能使用示例服务。请参考必备博客中的描述请务必记下您的用户和密码。

准备

准备步骤与上一篇博客类似:访问我们要使用的odatav2服务,然后通过云中的目的地使其可用。

检查OData V2服务以供使用

这是我们希望在Java代码中使用的OData V2服务的URL:

https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE\u基本

在CloudFoundry中创建目的地

在本教程中,我们使用的是不同的ODataV2比以前的服务,返利助手,所以我们需要一个新的目标配置。有关在SAP Cloud Platform、Cloud Foundry环境中创建目的地的更多信息,请参阅此处。

请参阅下面本教程要输入的详细信息:

可选:熟悉后端服务

在我们的新服务实现中,我们使用现有的OData服务来获取所需的数据。因此,我们需要知道该服务是如何构建的以及它是如何工作的。我认为手动尝试服务上的操作是有意义的,之后我们将以编程方式执行这些操作。但是,以下教程不是强制性的。

请参阅本页末尾的附录5部分,查看请求的URL和说明。

元数据:我们需要知道一些关于这项服务的信息,因为它会影响我们的工作工作:实体感兴趣的对象称为BusinessPartner,实体集称为BusinessPartnerSet

–键字段的名称:BusinessPartnerID–创建新业务伙伴时,关键字段的值将在ERP后端生成–创建新业务伙伴时,必须填写所有不可为空的属性(如BusinessPartnerRole等)–在创建新业务伙伴时,我们必须知道电子邮件属性必须是唯一的,否则ERP后端会投诉

注意:关于ERP后端中不可为空的属性:我认为最好的做法是在我们的服务元数据中将它们声明为Nullable=false。但是,我认为我们应该忽略这些方面,云服务器厂商,这样我们就可以测试我们的服务的行为,以防我们打破这些限制。

场景

在本教程中,我们仍然保持简单,因为我们希望重点实现CUD操作。除了我们将要创建的odatav4服务之外,我们还以一种简化的方式向所有客户提供访问。这是我们的使命。所以我们要做的是:我们提供的服务有一个简单的模型,少而平的属性和直观的名称

项目

项目创建在这里介绍和上一个教程一样,在项目创建之后,我们得对这个房间做些改动清单.yml文件:

请参阅附录了解本文件的全部内容清单.yml文件

模型

这是我们的简单模型:

请参阅本页末尾的附录1部分,以获得文件的全部内容。

本教程中的实现

,我们在Java代码中所要做的就是将传入的服务请求委托给所使用的后端服务。没别的了。我们没有实现任何特定于OData的需求,所有的工作都是由我们使用的后端服务完成的。我们只是在委派。

但是,为了委派调用,我们必须将v4模型的结构转换为v2后端服务的结构。

区别很小:EntityType业务伙伴已重命名为CustomerEntitySet BusinessPartnerSet已重命名为Customers属性数量减少属性将重命名业务伙伴有一个ComplexType属性地址。我们只在模型中引入一个简单的属性在我们的v4服务中,我们忽略了3个属性(货币、角色、地址类型),它们在后端是必需的。因此,在使用我们的服务创建(v4)客户时,我们在将这些值委派到后端之前对其进行硬编码。

总之,在我们的实现中,我们的工作是映射属性名称。

注意:在我们的示例代码中,我们使用的是HashMaps。正如你所知道的,所有这些都可以用pojo来完成,但是我认为坚持使用HashMaps会让你更容易遵循教程,企业信息软件,因为我们可以将所有代码保存在一个类中。

请参阅本页末尾的附录部分以获取完整的源代码。

实现OData v2数据源的查询操作已经在前面的教程中进行了说明。

但是,在当前的示例中,我们没有更多的工作要做。请记住,在上一篇博客中,我们特意用与v2属性名相同的属性名定义了我们的模型。避免努力。现在是时候少偷懒多灵活了。我们以与之前相同的方式调用v2服务,结果得到一个对应于v2实体的映射列表。由于我们的v4实体具有不同的结构和不同的属性名称,我们必须用从v2映射中获得的值手动填充每个v4属性。