ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ABAP CDS 中金额与数量的语义建模,Amount、Quantity 与 Calculated Quantity 深入解析

ABAP CDS 中金额与数量的语义建模,Amount、Quantity 与 Calculated Quantity 深入解析 在 SAP S/4HANA 的销售订单、采购订单、发票、库存和财务模型里,经常会遇到这样一组字段,NetAmount保存净金额,TransactionCurrency保存交易货币,OrderQuantity保存订单数量,OrderUnit保存计量单位。从数据库字段角度看,前两组无非都是数字加字符,从普通 SQL 的视角甚至可以直接拿数值字段参与加减乘除。到了 ABAP CDS,这件事却不能只按照普通数字理解。100美元和100日元虽然数据库里都可能看到一个数值100,业务含义却完全不同。100 KG和100 PC也不能因为数值相同就在没有单位转换的情况下随意相加。ABAP CDS 因此在数据类型之外,又给这些字段建立了一层语义关系。金额必须知道自己属于哪一种货币,数量必须知道自己使用什么计量单位,计算产生的新指标也必须能够描述自己的单位。这套机制直接影响 CDS 的表达式检查、聚合、CASE、UNION、INTERSECT、比较运算以及单位和货币转换。它并不只是为了 Fiori 页面上多显示一个EUR或KG。SAP 当前的 ABAP Keyword Documentation 也明确把 amount field、quantity field 和 calculated quantity 作为具有特殊语义的 CDS
返回列表