在本博客中,我们将结合Excel上传,商业大数据分析,动态选择选项生成,在弹出屏幕上显示,并在为HANA创建的ALV IDA中显示结果。继续这个博客系列,我们的目标是将旧的ABAP语言功能与新的ABAP语法和S/4HANA功能的详细说明进行比较。
请参阅本程序的第2版,并在此处存储报告设置。
本博客的组织结构如下:
程序概述程序流程图Excel文件格式程序演练HANA和CDS视图方法教程方法链和新的读取Excel数据生成选择选项弹出选择屏幕艾尔维达完整程序参考
S/4HANA(SAP基础752,SAP ABA 75C)SAPGUI版本750Eclipse版本:Oxygen.3a发行版(4.7.3a)Microsoft Excel(.xlsx支持)
程序流程图
Excel文件格式
Excel文件将包含一个表、视图或CD视图,其中包含您希望在弹出窗口中显示为选择选项的字段。
格式:
a列将仅包含2个标签:
A1=表、视图或CD视图名称A2=选择字段
B列仅包含表/视图/CDS视图名称和要作为弹出窗口上的选择选项包括的字段列表:
B1=表、视图或CDS视图名称B2+=要作为选择选项包含的字段列表
示例:
对于CDS视图"S\U BOOKINGS",在弹出窗口中包含CARRIERID、FLIGHTDATE、CUSTOMERID、LOCALCURRENCYAMOUNT字段作为选择选项。
上面的弹出窗口将如下所示:
这样,您可以简单地将Excel电子表格更改为point任何表格/视图/CDS视图,在选择屏幕上键入所需的字段,然后重新运行它以读取更新的电子表格并执行新报告。
此处使用Excel上载,但您可以用自己传递这些值的方式轻松替换Excel上载。您只需要用这些值填充一个内部表。在这个程序中,在build\u select\u options方法中填充。
这里有一些其他的想法来设置table/View/CDS视图和选择字段的程序运行时参数:
创建一个SM30中维护的Z表硬编码选择选项并将程序绑定到事务代码在共享驱动器上设置一个Excel文件,用户只需运行程序,它就可以提取条目并自动生成报告。
让我们浏览一下程序,看看它是如何工作的……
注意,s\U预订相关表是SAP的SFLIGHT演示应用程序的一部分。如果您的系统在这些表中没有数据,则有一个标准的SAP程序来创建名为"SAPBC\u data\u GENERATOR"的数据。您可以在这里阅读更多信息:
https://help.sap.com/doc/sahelp\u nw70/7.0.31/en-US/cf/21f30446011d189700000e8322d00/content.htm?no_cache=true
第一个屏幕只有扩展名为".xlsx"的Excel电子表格的输入文件:
我们将读取带有以下条目的电子表格:
我们的CDS视图是"S_BOOKINGS"。
执行此电子表格时,我们在弹出窗口中得到以下4个选择选项:
Airline=CARRIERIDFlight Date=飞行日期客户编号=CUSTOMERID金额(位置电流)=LOCALCURRENCYAMOUNT
我们将通过点击"航空公司:
右侧的"多选"箭头为"航空公司"输入2个值接下来,企业管理软件排行,为2个航空公司代码输入"AA"和"AZ":
点击执行以获得ALV IDA结果:
要验证我的数据结果,我喜欢使用过滤器选项,它允许您点击在"搜索帮助"中,该帮助仅包含数据集中项目的唯一列表。为了确认我们只选择了"AA"和"AZ"航空公司,我们可以选择"航空公司"栏,然后点击"筛选"按钮:
当您点击"ID:"下拉列表时,您将只看到您的数据集中包含的2个代码:
如果您将选择选项留空,则选择所有数据。ALV IDA没有问题,我们将在后面讨论。
这里有一些其他示例报告,您可以尝试,只需更新您的电子表格:
弹出选择选项:
结果:
弹出选择选项:
结果:
上面有很多内容,因此,让我们深入了解代码并详细了解它……
许多Ababers花了多年时间变得非常擅长性能转换—运行时分析、定义索引、仔细设计报告以只选择关键字段、只选择有索引的字段等等
…是的,你不需要了…
对于阿巴斯,你必须学会。有了正确的CDS注解,你就可以自动生成一个完整的Fiori应用程序。这里有大量优秀的文档,所以我不会详细介绍,但这是您的未来,所以是时候学习了。这也意味着您必须开始使用Eclipse,真正云服务器,因为这是创建CDS视图的唯一方法。将ALV-IDA网格指向CDS视图,您可以选择数百万条记录,只需对它们进行分页和筛选。使用ALV-IDA和HANA,就不再有在内存中选择太多记录并导致运行时短转储的风险。在本教程中,当我们在S\U BOOKINGS CDS视图上选择时,我们只是在呈现ALV IDA表格之前对数据进行预筛选(使用我们的选择选项)。
需要注意的是,ALV IDA分页等不必是CDS视图。它可以是任何HANA表。您会注意到,在系统中,S4中的大多数表现在都被定义为HANA表。例如,在SE11中显示accounting GL Header table BKPF并显示"Technical Settings>DB Specific Properties":
Column Store=HANA
让我们看看查看CDS视图定义的各种方法,以及Eclipse和SE11之间的比较。
首先,让我们看看SE11中的s\ U预订:
单击"显示"按钮,您将得到以下消息:
让我们打开Eclipse,并在那里看到CDS视图。
我们对我们的CDS视图有以下定义:
注意,第一行有一个注释:
返回SE11,并输入此视图名称:
在这里,我们可以看到定义,DDL源等
,我们可以点击Contents按钮
…并像常规的SAP表或视图一样显示条目:
返回SE11,双击"DDL源":
在这里,您可以看到DDL定义,正如我们在Eclipse中看到的:
现在,让我们看一下Eclipse中的数据。右击S\U BOOKINGS CD视图,进入菜单路径"Open With>Data Preview":
这将打开一个选项卡,其中包含数据视图:
Method Chaining and NEW
程序定义并使用名为"lcl\U dynamic\U sel"的本地类。
在NEW operator and Method Chaining之前,我们可以这样做:
我们可以用下面的语句简化上面的内容: