You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAP Fiori详情页柱状图无数据问题及多维度数据配置咨询

问题解决与实现建议

一、修复柱状图"No Data"问题

问题根源

当前Detail视图通过控制器的bindElement方法绑定到单个产品对象(路径/ProductCollection/{ProductId}),但图表的FlattenedDataset却尝试绑定到{ProductCollection}——该路径在单个产品的上下文下是无效的,因为当前视图的上下文是集合中的某一项,而非集合本身,导致图表无法获取数据。

解决方案

如果暂时只需要展示当前产品的单一年份销售数据,可以调整数据集的绑定路径,直接引用模型的根上下文:

<viz.data:FlattenedDataset data="{/ProductCollection}">

但这种方式会显示所有产品的销售数据,更合理的方案是结合多年份需求重构数据结构(见下文),从根源解决问题。

二、添加多年份销售数据的实现

数据结构调整

是的,需要在webapp/model.json中为每个产品添加销售历史数组,示例如下:

{
    "ProductCollection": [{
        "ProductId": "1239102",
        "Name": "BMW20",
        // 保留原有其他字段...
        "SalesHistory": [
            {"Year": "2012", "Sales": 200},
            {"Year": "2013", "Sales": 350},
            {"Year": "2014", "Sales": 420}
        ]
    }, {
        // 其他产品数据...
    }]
}

注意:建议将Sales字段改为数值类型(去掉引号),便于图表正确处理数据。

视图绑定修改

在Detail视图的XML中,将图表数据集绑定到当前产品的SalesHistory数组:

<viz:dataset>
    <viz.data:FlattenedDataset data="{SalesHistory}">
        <viz.data:dimensions>
            <viz.data:DimensionDefinition name="Year" values="{Year}" />
        </viz.data:dimensions>
        <viz.data:measures>
            <viz.data:MeasureDefinition name="Sales" values="{Sales}"/>
        </viz.data:measures>
    </viz.data:FlattenedDataset>
</viz:dataset>

修改后,图表会自动加载当前产品的多年份销售数据,同时解决"No Data"的问题。

内容的提问来源于stack exchange,提问作者Mahmood Hammood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 23:07:01