最近在整理 ABAP CDS Analytical Query 时,有一个概念很容易被低估,那就是Measure。
在普通的 ABAP CDS View 里,一个数值字段看起来可能只是DEC、CURR、QUAN或DECFLOAT34类型的字段。但一旦进入 Analytical Query,同样一个字段就不再只是数据库结果集中的一列数字。它会被 Analytical Engine 当成可以聚合、计算、限制、格式化和参与公式运算的分析指标。
SAP 当前的 ABAP Analytics 文档把 Analytical Model 看成建立在 CDS View Entity 之上的多维数据模型。Star Schema 提供事实与维度模型,而 Analytical Query 则在这个模型上表达具体的分析请求和计算逻辑。Measure 在这里属于定量数据,也就是传统 BW 语境下经常说的 Key Figure。SAP Analytical Engine 会把这些 Measure 放入一个临时的 Measure Structure 中进行处理。
这也是理解 Measure 时最关键的一层背景。
我们不能只把它理解成一个金额字段或者数量字段,而要把它看成 Analytical Engine 运行时的一种语义对象。
一个销售订单 Cube 里可能存在NetAmount,一个库存 Cube 里可能存在StockQuantity,财务模型里可能有ActualAmount、Pla