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

轻量服务器_查看数据库的字符集_测评

小七 141 0

轻量服务器_查看数据库的字符集_测评

采用S/4HANA编程模型

基于使用ABAP核心数据服务anyDB的博客文章性能考虑和在一些项目中收集的经验,淘客返利app,我想分享一些关于ABAP CDS视图使用的想法和一些陷阱,特别是从客户和合作伙伴开发的角度。一般来说,abapcds视图是S/4HANA编程模型的中心支柱。这是事实,SAP TechEd 2016证明,当您采用S/4HANA开发模式时,它们是一条可行之路。

然而,自7.40 SP05以来,CDS技术本身就是SAP NetWeaver的一部分,从那时起,随着SAP NetWeaver 7.50和7.51的推出,CDS技术也在不断发展,人们期待已久的测试双重框架(简介CDS测试双重框架-编写单元测试ABAP CDS实体)在SAP NetWeaver 7.50和7.51中引入。因此,只要此NetWeaver可用,就可以使用CDS视图,无论它是S/4HANA系统、业务套件还是裸NetWeaver,也不管下面是什么数据库。CDS视图可用于任何数据库

由于我们希望为客户提供经得起未来考验的解决方案,因此,在NetWeaver系统允许的情况下,合理的结果是使用CDS视图(以及相应的代码下推)。这样,客户就可以得到一个尽可能采用S/4编程模型的最先进的解决方案,即使还没有(尚未)在S/4HANA系统上(因此,希望至少从技术角度来说,能够使转换顺利进行)。就是这个主意。然而,这个目标是高尚的,我只是数据,但是大自然母亲(在本例中是非HANA数据库)对高尚的人来说是残酷的。

ABAP CDS在anyDB上的潜在问题

那么这种方法会有什么问题呢?让我们后退一步,想想在将复杂逻辑放入CDS视图时我们在做什么:我们创建复杂的SQL语句(最终包括SQL函数),这些语句必须在DB级别执行。现在,如果我们在CDS视图和SAP HANA出现之前的几天里实现了复杂的SQL,我们就不会期望这段代码在每个数据库上都能在一眨眼之间运行并且没有任何问题。复杂SQL的执行过去和现在都依赖于数据库及其处理方式。因此,使用复杂的SQL并在不同的数据库上执行它可能会带来一些"惊喜",特别是在性能方面。如果你把复杂的逻辑放到一个CDS视图中(最后是SQL)也是一样的——这里没有魔力。下一个有效的问题是:为什么这些CDS视图在saphana上表现得相当好?原因很简单,SAP-HANA构建的初衷就是要实现这一点,即使应用程序能够将数据密集型逻辑下推到SAP-HANA,并让SAP-HANA(由于其体系结构)发挥作用。另一个需要记住的重要点是,SAP非常关注S/4HANA及其编程模型,因此CDS视图与SAP HANA的测试和随后的优化远远超出了对其他数据库的测试。人们可以对此进行辩论,但当anyDB上的CDS视图在您的项目中不起作用时,这并不能真正帮助您?

这对我们作为开发者和架构师意味着什么?这个问题的答案不是一个单一的事实,但是您必须考虑到您在项目中的限制。我会区分以下选项:

如果我们的系统下面有SAP HANA,大数据的数据库,那么您可以并且应该使用CDS视图并进行代码下推。不能保证不会出现问题,一切都是粉红色的独角兽和彩虹,但可能性较低/没有那么高。如果出现问题,SAP可能会找到解决方案,因为SAP HANA with CDS views是他们也坚持的编程模型。然而,必须特别清楚地告诉客户,离开SAP HANA不再那么容易了,因为坚持CD并不是真正的DB不可知论(尤其是在性能方面)如果您在具有非HANA DB的客户系统上开发,则CDS视图不是首选。如果客户可能很快就会转向SAP HANA或S/4HANA,那么考虑应用它们可能是有意义的。然而,您必须非常准确地测试这些东西,如果性能(或其他东西)失败,则需要计划B。请注意,测试必须在与生产系统相同的数据库类型上进行—否则,上线后可能会有一个很大的惊喜。如果客户没有迁移到SAP HANA的计划,我不建议使用它们。可能出现的潜在问题是不值得的。如果您作为合作伙伴开发的产品/附加组件必须在anyDB上运行,淘返利,那么选择很简单:不要使用它们!除了你有能力并且愿意在每一个DB系统上测试这些东西,我认为这不是一个现实的场景(旁注:也许您在产品中找到了这样一个位置:代码下推是有意义的,SAP HANA上的客户可能真的会从中受益——那么,现在是时候对HANA优化的代码进行代码拆分并承担所有后果了。)产品开发人员需要考虑的另一点是:如果您已经完成了代码拆分(比如产品的一个s/4HANA行和一个Business Suite行),并且您希望将创新从s/4到Suite行进行一些后移植,并且您没有使用严格的特定于HANA的代码(比如AMDPs),那么这非常简单……对吗?好,如果一些CDS视图(或者更通用一些:一些代码下推)可能伴随着backport出现,您可能还需要仔细研究一下,红淘客,然后您应该重新考虑您在backport上的决定。

底线–ABAP CDS视图与anyDB