当前位置:主页 > 云数据库 > 正文

阿里云_新东方企业邮箱登陆_精选特惠

时间:2021-07-13 13:55 来源:埃里克云 编辑:埃里克云

核心提示

12.05.2017在比较上次更改日期的时间戳和更新方法中从etag读取的时间戳之前,添加了锁定数据的代码。16.05.2017修复了创建函数import的MPC\u EXT代码在比较上次更改日期的时间戳和从函数...

12.05.2017在比较上次更改日期的时间戳和更新方法中从etag读取的时间戳之前,添加了锁定数据的代码。16.05.2017修复了创建函数import的MPC\u EXT代码在比较上次更改日期的时间戳和从函数导入

中的etag读取的时间戳之前,添加了锁定数据的代码。如果实体类型的属性被标记为etag,SAP Gateway提供了对etag的现成支持。使用通用框架支持时,在使用Etag时会发生以下情况。

在执行更新之前,集线器上的网关框架会执行读取请求,并将客户端发送的Etag与从后端检索的Etag进行比较。框架提供的Etag处理不需要任何编码,但需要实现GET\u ENTITY方法。提供了通用的SAP网关框架支持以供读取,更新和删除请求。

不使用通用框架支持,可以在SAP Business Suite后端系统中执行基于代码的实现。

这有一些优点,因为它允许开发人员在执行更新之前检查etag时锁定数据。当使用现成的框架支持时,这是不可能的,并且您不能100%确定另一个用户在框架的读取请求和您的更新请求之间的短时间内更新了数据。

第二个优点是基于代码的实现还为函数导入提供etag支持。

处理从SAP Gateway 2.0 SP09和SAP NetWeaver 740 SP08开始,后端中的ETag可用。你必须实现一些方法,在这些方法中你必须添加代码来告诉框架数据提供者类已经实现了ETag处理。

这个博客是基于一个OData服务的,这个OData服务已经在我下面的博客中被删除:

ETag通常是当一个实体被更新时被更新的时间戳。但是,对于更复杂的场景,时间戳可能不是最佳选择,而hashtag是更好的方法。如何实现一个基于hash标签的etag已经在下面的博客中进行了描述https://blogs.sap.com/2016/03/18/maintain-data-concurrency-in-odata/通过Thiru Siva

在进行基于代码的开发时,您可以选择应在实体类型级别用作etag的属性。

如果您使用了引用的数据源,请必须在模型提供程序扩展类的DEFINE方法中执行这些更改。

在我们在下面的博客中使用的OData服务的DEFINE方法中

我们必须添加到行中,以便将属性"LastChangedDateTime"设置为实体类型"Zsepm\u C\u Salesorder\u TplType"的etag。

在实施了这些更改尝试使用http状态代码428值"Precondition Required"执行更新时,您将收到以下错误消息。

此检查由集线器上的SAP网关框架完成。

我们必须添加一个if match http头,其值如下此:

W/"datetimeoffset'2017-05-05T09%3A15%3A05.6050000Z'"

在网关客户端中,您可以轻松添加此标头,如下面的屏幕截图所示。

如果现在再次执行更新请求,我们将收到一个空http响应,http返回码204,表示更新成功。

如果您尝试执行更新不更改etag值的更新您将收到错误消息Precondition Failed with a http return code 428.

/IWBEP/IF\u MGW\u APPL\u SRV\u RUNTIME~GET\u IS\u CONDITIONAL\u IMPLEMENTED

我们首先必须实现方法/IWBEP/IF\u MGW\u APPL\u SRV\u RUNTIME~GET\u IS\u CONDITIONAL\u IMPLEMENTED,添加以下代码

请注意我们使用引用的数据源和服务生成器创建的服务的enity集的名称称为"Zsepm\u C\u Salesorder\u Tpl"。对于其他实体集,框架将处理Etag支持。

由于SAP Gatway Hub框架现在不执行Etag处理,我们必须将以下代码添加到我们的更新方法中,否则所有更新的请求都将在不检查Etag内容的情况下执行。

将Etag检查添加到更新方法

我们现在有对更新方法进行编码,首先通过比较上次更改日期的值与if match头中更新请求提供的值来检查销售订单是否没有更改。

为此,我们使用io技术请求上下文对象的get\u conditional\u info方法。此方法返回深度结构中的if\u match以及if\u non\u match标头,我们必须对其进行评估。

此外,我们正在锁定要在执行更新之前更新的销售订单。

如果未更新则解除锁定,如果检查etag失败则执行该锁定。

如果在代码中添加断点,则可以看到在事务SM12中获取锁。

添加函数导入

由于我们使用的服务是使用引用的数据源方法生成的,因此我们无法使用service builder创建函数导入。原因是创建函数导入的对话框找不到CDS视图的实体类型和实体集。

因此,我们必须通过向模块提供程序扩展类的DEFINE方法添加代码来创建函数导入"ConfirmOrder"。

通过后端激活etag支持

如果要添加etag对函数的支持模块您必须实现以下方法/IWBEP/IF\u MGW\u APPL\u SRV\u RUNTIME~GET\u IS\u CONDI\u IMPLE\u FOR\u ACTION。在这种情况下,代码将通知框架,条件处理是由后端的服务实现为函数导入"ConfirmOrder"完成的。

实现函数导入并添加etag支持

通过实现方法/iwbep/如果\u mgw\u appl\u srv\u runtime~ execute\u action,我们可以向函数添加业务逻辑导入

像在更新方法中一样,在检查etag之前添加了锁定销售订单的代码。只有在检查了销售订单之后。未被其他用户更改状态已更新。

因此,我们现在可以通过执行以下URI执行乐观锁定的销售订单确认。

  • <strong>数据库_太原网站建设公司_高性价比</strong> 数据库_太原网站建设公司_高性价比

    解决上述问题,请遵循以下步骤: 2。在Fiori-BI启动板中设置验证选项卡和CMS可见: 1。\SAP BusinessObjects Enterprise XI4.0\warfiles\webapps\BOE\WEB-INF\config\custom\ 如果您使用的是BI平台安装的Tomc...

  • <strong>京东云_企业邮箱排名_年度促销</strong> 京东云_企业邮箱排名_年度促销

    场景:在这个场景中,我将解释如何使用计算视图中的计算列来计算学生平均分。 计算视图用于组合其他分析视图、属性视图和其他计算视图以及基本列表。它们用于执行复杂的计算...

  • <strong>对象存储_长沙网站建设公司_9元</strong> 对象存储_长沙网站建设公司_9元

    在特拉华的最后几天,我们正在研究物联网方面的创新。除此之外,我们还创建了一些智能数据流,并在designstudio中使用它们。现在为了创建一些真实的演示,我们需要一个物联网模...

  • <strong>香港带宽_oa系统数据库设计_免费申请</strong> 香港带宽_oa系统数据库设计_免费申请

    This blog is the part 2 of the 5-part blog-series. In this blog, we will introduce OData Interfaces which are exposed from SAP Process Orchestration (from 7.40 onwards) (SAP PO) can be exposed as Open APIs and managed through SAP API Man...

  • <strong>全站加速_企业邮箱用哪家的好_测评</strong> 全站加速_企业邮箱用哪家的好_测评

    亲爱的合作伙伴 由SAP主题专家主持的Enablement Insights网络研讨会每月在我们的各个合作伙伴协作室举行一次。这些会议室使您能够轻松地与同事协作、分享知识并提高知识的趣味性,以...

  • <strong>域名注册_关系数据库是以_优惠</strong> 域名注册_关系数据库是以_优惠

    最近我们在结算WBS元素时遇到了两个错误。我们使用WBS元素来记录成本,然后先将其结算给AuC,然后再将其结算给主要资产。 我们在2017财年,我们的关闭资产年度是2015年,这意味着...

  • <strong>天翼云_常用数据库管理系统_免费6个月</strong> 天翼云_常用数据库管理系统_免费6个月

    达芬奇可能是指数思维的最早采用者之一。 达芬奇500多年前出生在半农村的托斯卡纳,父母收入微薄。尽管他很少接受正规教育,但他能够推断出有关建筑学、工程学、数学、城市规...

  • <strong>金山云_白雪公主百度云_优惠</strong> 金山云_白雪公主百度云_优惠

    在本系列的第一篇博客中,我讨论了什么是保证交付,它是如何工作的,以及为什么您应该将它用于流项目和适配器。如果您错过了它,您可以阅读这里的介绍。 现在,在第二部分中...

  • <strong>美国服务器_分布式数据库有哪些_免费申</strong> 美国服务器_分布式数据库有哪些_免费申

    美国作家、未来主义者阿尔文·托夫勒(Alvin Toffler)通常被引用为这句名言的创始者:"21世纪的文盲将不是那些不会读和写的人,而是那些不会学习、忘却和重新学习的人。"然而,托...