让金额真正可汇总,SAP Fiori Elements 中的 ABAP CDS 统一货币转换设计

📅 2026/7/12 18:41:55
让金额真正可汇总,SAP Fiori Elements 中的 ABAP CDS 统一货币转换设计
一张销售订单分析表打开后,德国公司的订单以EUR记账,美国公司的订单以USD记账,日本公司的订单又使用JPY。每一行数据看起来都很正常,金额旁边也带着对应币种。可是一旦表格底部出现合计,问题立刻暴露出来。12,000 EUR + 15,000 USD + 1,800,000 JPY这三个数字当然可以在数据库层面直接相加,但得到的结果没有任何业务含义。它既不是欧元,也不是美元,更不是日元,只是几个不同计价尺度下的数字被机械地堆在了一起。在 SAP Fiori Elements 的分析型列表、分析表格、图表和 KPI 场景里,金额字段要参与SUM聚合,不能只给字段加上@DefaultAggregation: #SUM。聚合发生之前,所有记录必须进入同一个货币坐标系。SAP 为此在 ABAP CDS 中提供了CURRENCY_CONVERSION函数,它可以按照系统维护的汇率规则,把来源金额转换成统一的目标货币,再交给分析引擎进行汇总。SAP 官方文档对这套处理方式给出的核心思路很明确,ABAP CDS 使用内置的CURRENCY_CONVERSION函数,将不同货币转换为共同的目标货币。金额语义、货币代码语义和默认聚合规则需要共同参与,单独配置其中任何一项都不足以构成完整的可分析金额模型。为什么原始金额不能直接执行SUM在普通业务列表里,一列金额可能只是用于逐行展示。