使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

SAP的逻辑数据库

SAP的逻辑数据库(LDB)是类似于CDS、BW数据源、HANA Live的数据一种模型,它涵盖相关的表以及数据提取的一整套操作,SAP根据不同的业务线条预制了很多标准的LDB,使用这些LDB可以不写ABAP代码快速制作类似于会计凭证清单、资产清单、销售订单清单等报表。

由于使用的是标准的数据模型,性能优化的很好,查询速度很快,比较适合业务顾问和用户自己制作一些简单的查询类型的报表。

维护LDB的事务代码是SE36或者SLDB,关于LDB的维护、操作有一套自己的规则,可以搜索相关资料学习一下。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

常用的LDB例如:

ADA,固定资产

BRF,会计凭证

CKC,订单BOM

IFM,采购信息记录

使用逻辑数据库创建一个查询

例如,使用ADA创建一个固定资产清单报表。

事务代码:SQVI(创建自己的报表)或者SQ01、SQ02和SQ03。

以SQVI创建一个只能自己查询的Query为例,输入查询名字,选择逻辑数据库并输入资产的逻辑数据库ADA。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据
使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

展开对应的表,选择需要显示的字段、字段排序、以及查询条件,然后点Execute生成报表。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

生成的报表自带查询界面和数据导出功能。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

而且导出功能还有很多种,妥妥的。

如下图所示红框的选项为导出数据到数据库,这样方便以后查询静态数据或者做数据交互用,这里输入的ID会保存到导出的数据库中,方便以后我们根据这个ID查找到我们所导出到数据库的那份数据。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

默认情况下的选项SAP List Viewer就是显示ALV。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

将Query的数据export与import到数据库

在Query界面的状态上可以看到这个Query生成的程序名。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据
使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

双击进入到程序里搜索关键词export,其中的%save_list这个form就是将数据导出到数据库,而不是显示到ALV里边的。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

同样的,下面的%refresh这个form的作用是将数据从数据库导入到内表的。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

我们打个断点看下各个变量的作用。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

%ST_LISTE是以最原始的ABAP格式展示的所导出的数据,现在一般没什么用处了。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

%PTAB[]是报表名称。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

%LDESC[]是导出的报表的字段名,这个就有用了。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

%GDESC[]是导出到的簇表的一些主键字段。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

%SELECTIONS[]是我们在查询界面上输入的条件,其中有一行特别重要,是我们输入的ID信息,后面能不能从数据库取出数据全靠它了。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

%G00[]是实际的ALV数据内表,也是很重要。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

我们看到数据将会用%ql_id导出到数据表aqldb,%ql_db的值为AQA0SYSTQV000001ZFI001========20210603223903

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

完成程序运行,数据导出到数据表aqldb,SE16N查询一下。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据
使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

可以看到数据是以RAW形式存储的,无法直接查看。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

使用测试代码导入到内表试试。

从生成的Query程序中找到%g00数据内表的样式,复制到自建程序。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

例如我们想导入数据和我们当时输入的查询条件,注意IMPORT的时候变量名要和导出的时候一致,先导入之后可以再赋值给其他变量。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据
使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

这个值与我们输入的ID一致,说明这份数据是是我们保存的那一份。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

注意,或许是我没有找到直接的对应关系,或许是SAP设计的缺陷。没有找到一张表直接关联我们输入的ID和表AQLDB中的SRTFD的关系,只能根据日期去把这一天这个程序相关的查询结果全部查询出来,一一LOOP分析selections内表里的69行做判断。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据
使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

由于LDB查询数据又准又快,因此我们可以考虑利用上面的方式使用LDB创建一些基础查询,然后SUBMIT查询将数据导出到数据库中,再导入到报表中使用。

使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据
使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据
使用SAP逻辑数据库(LDB)创建Query并在数据库表export和import数据

本文作者: GavinDong

版权属于: GavinDong博客

文章链接: https://gavindong.com/8459.html

如果使用过程中遇到问题,可 **点击此处** 交流沟通。

版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

(0)

相关文章