108. SAP ABAP 报表进度显示控件的使用详解

有些 SAP ABAP 报表包含了多个业务处理步骤,笔者这里举一个例子:

计算某个时间段内,系统所有销售订单的总金额。

SAP 大多数基于 ABAP 技术栈的销售订单设计,都是采取订单抬头(header) 和订单行项目(Line Item)的数据结构。订单的时间段维护在抬头结构上,一张订单可能包含多个行项目,每个行项目有一个金额字段。因此订单的总金额,是其行项目金额之和

订单的抬头结构和行项目结构,维护在两张不同的数据库表里。

打个比方,比如 SAP CRM,订单抬头结构在 CRMD_ORDERADM_H, 订单行项目在 CRMD_ORDERADM_I 这张表里。

CRMD 中的 D 意思是 Database,ADM 是 Administration 的缩写,H 是 Header,I 代表 Item.

因此上述需求的常规处理思路是:

  1. 从订单抬头结构数据库表中,读取出某个时间段内的所有抬头数据。

  2. 根据这些抬头数据,读取出所有的行项目数据。

  3. 在循环中遍历这些行项目数据,将行项目的金额字段进行累加。循环结束后,累加结果就是总金额。

如果某个时间段内系统的订单条目数非常大,比如说是1亿条,那么将这一亿条订单的抬头结构,全部从数据库表读取到 ABAP 应用层处理,可能会因为数据量过大的原因,造成应用程序异常中止退出。

详细原因笔者已经在之前的文章里详细介绍过了:

猜你喜欢

转载自blog.csdn.net/i042416/article/details/132031314