SAP的逻辑数据库
SAP的逻辑数据库(LDB)是类似于CDS、BW数据源、HANA Live的数据一种模型,它涵盖相关的表以及数据提取的一整套操作,SAP根据不同的业务线条预制了很多标准的LDB,使用这些LDB可以不写ABAP代码快速制作类似于会计凭证清单、资产清单、销售订单清单等报表。
由于使用的是标准的数据模型,性能优化的很好,查询速度很快,比较适合业务顾问和用户自己制作一些简单的查询类型的报表。
维护LDB的事务代码是SE36或者SLDB,关于LDB的维护、操作有一套自己的规则,可以搜索相关资料学习一下。
常用的LDB例如:
ADA,固定资产
BRF,会计凭证
CKC,订单BOM
IFM,采购信息记录
使用逻辑数据库创建一个查询
例如,使用ADA创建一个固定资产清单报表。
事务代码:SQVI(创建自己的报表)或者SQ01、SQ02和SQ03。
以SQVI创建一个只能自己查询的Query为例,输入查询名字,选择逻辑数据库并输入资产的逻辑数据库ADA。
展开对应的表,选择需要显示的字段、字段排序、以及查询条件,然后点Execute生成报表。
生成的报表自带查询界面和数据导出功能。
而且导出功能还有很多种,妥妥的。
如下图所示红框的选项为导出数据到数据库,这样方便以后查询静态数据或者做数据交互用,这里输入的ID会保存到导出的数据库中,方便以后我们根据这个ID查找到我们所导出到数据库的那份数据。
默认情况下的选项SAP List Viewer就是显示ALV。
将Query的数据export与import到数据库
在Query界面的状态上可以看到这个Query生成的程序名。
双击进入到程序里搜索关键词export,其中的%save_list这个form就是将数据导出到数据库,而不是显示到ALV里边的。
同样的,下面的%refresh这个form的作用是将数据从数据库导入到内表的。
我们打个断点看下各个变量的作用。
%ST_LISTE是以最原始的ABAP格式展示的所导出的数据,现在一般没什么用处了。
%PTAB[]是报表名称。
%LDESC[]是导出的报表的字段名,这个就有用了。
%GDESC[]是导出到的簇表的一些主键字段。
%SELECTIONS[]是我们在查询界面上输入的条件,其中有一行特别重要,是我们输入的ID信息,后面能不能从数据库取出数据全靠它了。
%G00[]是实际的ALV数据内表,也是很重要。
我们看到数据将会用%ql_id导出到数据表aqldb,%ql_db的值为AQA0SYSTQV000001ZFI001========20210603223903
完成程序运行,数据导出到数据表aqldb,SE16N查询一下。
可以看到数据是以RAW形式存储的,无法直接查看。
使用测试代码导入到内表试试。
从生成的Query程序中找到%g00数据内表的样式,复制到自建程序。
例如我们想导入数据和我们当时输入的查询条件,注意IMPORT的时候变量名要和导出的时候一致,先导入之后可以再赋值给其他变量。
这个值与我们输入的ID一致,说明这份数据是是我们保存的那一份。
注意,或许是我没有找到直接的对应关系,或许是SAP设计的缺陷。没有找到一张表直接关联我们输入的ID和表AQLDB中的SRTFD的关系,只能根据日期去把这一天这个程序相关的查询结果全部查询出来,一一LOOP分析selections内表里的69行做判断。
由于LDB查询数据又准又快,因此我们可以考虑利用上面的方式使用LDB创建一些基础查询,然后SUBMIT查询将数据导出到数据库中,再导入到报表中使用。
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/8459.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。