当前位置:主页 > 云存储 > 云服务 >

数据库_网站建设排行_免费6个月

  • 云服务
  • 2021-06-01 04:20
  • 动埠云

简介

ABAP CD视图允许我们为任何解决方案或UI构建非常好的结构化应用程序。

这个博客是关于如何通过使用ABAP CD为非常疯狂的数据模型和卷构建一个非常好、简单和非常快速的WebUI应用程序。

商业案例

我不得不为一个非常"特定"的应用程序构建一个搜索(F4 WebUI弹出窗口)应用程序

我们使用CRM IBASE模型来存储某些对象,这些对象可以被分组为多个CD视图或实体。为了保守SAP的秘密,我不会透露它们的名字,我会叫它们:Entity1,Entity2,Entity3.

在每个实体后面,我们有大约8个,几乎总是相同的表或视图。以下是表格列表,其中包含这些表格中的条目总数:IBIN(275.447.044)、IBIB(2.271.052)、ZSIB\ U PRD\ U IDX(4.418.220)、COMV\ U PRSHTEXT(7.184.985)、ZSST\ U SY\ U SMVV(72.926)、IBPART\ U IDX(8.129.592)、BUT000(17.244.188)、ZSST\ U SY\ U HEAD(3.163.696)、ZSST\ U BUS\ U ADM(288.391),大数据和小数据,ZSST\u总线\u SM(288.391)

所以你可以看到数据量真的很大!但哈娜能应付。是的,所有这些都在HANA数据库上运行;我以前没告诉过它吗?:-))

步骤1:定义实体并构建ABAP CDS视图

开始时,需要定义实体(实体1、实体2、实体3)并构建适当的ABAP CDS视图。我将不描述如何做到这一点,它已经被很好地描述了上百万次的SCN。我只给你举几个例子。

实体1

我们只加入8个表,里面有数以亿计的条目!实体2和实体3看起来非常相似。:-))

第2步:定义关系和搜索的视图

如果您有多个实体,如我的情况,可能您希望将它们连接在一起并构建搜索视图。

在我的情况下,对于一个搜索,我必须使用甚至union all。因此,我的搜索CD层实际上包含两个级别,所以我只提供两个ABAP CD定义

搜索级别1:Entity1\u SEARCH1

实体Entity1\u SEARCH2,平销返利,稍后将在UNION ALL中使用,看起来很相似。

搜索级别2:Entity1\u Search(来自级别1的搜索CD的组合)

性能说明:当您创建视图或执行UNION ALL语句(很可能在许多数据库上,包括HANA)时,通过部分(即Entity1\u SEARCH1,Entity1(u SEARCH2)将并行执行,以缩短响应时间!使用UNION ALL,不要调用ABAP端的两个类似选择。

步骤3:创建搜索和搜索结果结构

当DB端的一切就绪时,是在ABAP(NetWeaver)中开发的时候了。

对于我们的搜索,我们需要在SE11中创建搜索和结果结构。我将跳过这一步,因为它并不重要,也没有很好的描述。

我是否应该提醒您,为了简单起见,您应该按照字段在CDS视图或相应生成的ABAP视图表示中出现的样子来命名这些字段。

第4步:开发GENIL搜索类

在我的例子中,我处理的是IBASE组件,因此我从标准CL\u IBCOMPTOCOMPADV\u IL继承了这个类。要实现一个搜索,需要实现方法:search\u DYNAMIC.

我想发布一个完整的方法代码,如果\u IBASE\u IL\u search~search\u DYNAMIC,但是我确实需要匿名,因此我将只发布几个最重要的东西。

重要的事情1

性能说明:当您使用LEFT OUTER JOIN在10个不同的表上构建视图时,然后在选择过程中,您只使用1个表中的字段(在SELECT…或WHERE…子句中),最有可能(对于HANA)其他9个表将被忽略。

保持选择列表尽可能小,并选择屏幕上显示的唯一字段非常重要。您可以通过变量IS_QUERY_PARAMS-SELECTION_HITS[]传递对最终用户可见的字段。

重要事项2

您应该以不需要后续选择的方式构建CDS视图。所有数据必须在一次调用中从数据库中读取。

始终应用Max Hits参数,可以从IS_QUERY_PARAMS-Max_Hits中检索。

第5步:增强BOL/GENIL模型

在这一步,云服务器服务,您需要增强BOL/GENIL模型(或创建自己的模型),并让系统知道您的对象。你怎么做实际上取决于应用程序。对于1Order、BUPA、CASE或IBASE应用程序,必须使用不同的方法,我们将跳过它。在我的例子中,我必须将我的查询和结果对象放入表CRMC\u OBJ\u IBIL中,并在类CL\u CRM\u IBASE\u IL\u FACTORY中重新定义对象instantiation此处:

https://blogs.sap.com/2015/12/11/extend-1order-searches-how-to-guide-for-customers/

https://wiki.scn.sap.com/wiki/display/Snippets/How+to+Extend+Model+for+Business+Transactions+with+New+关系)

所以最后你应该有标准模型要增强或新的自定义模型要创建。

第6步:建立WebUI组件和视图

最后,您需要使用新创建的BOL/GENIL对象。为此,您可能需要创建一个带有相应搜索和搜索结果视图的自定义WebUI组件,并使用相应的搜索和搜索结果对象,微信返利机器人安全吗,企业信息化软件,我们也将跳过这一部分,把重点放在最重要的事情上https://blogs.sap.com/2010/03/28/crm-70-how-to-5e-search-view-and-search-result/)

猜你喜欢

微信公众号