我对 SAP 环境很陌生,在社区论坛或使用示例/模板/API 文档或 SAP 书籍时找不到以下问题的合适解决方案,因此我问了这个问题。
我的问题:我创建了一个带注释的 CDS 视图(用于表格和图表),并使用我的服务将其链接到自己的 SAPUI5 应用程序。虽然 SmartTable 创建没有任何问题,但 SmartChart 给了我以下错误: TypeError: can't convert undefined to object RoleFitter.js
我查看了错误,似乎注释文件中的某些内容不正确。但是,我找不到错误,因为它是从 CDS-View Annotations 自动生成的,所以我有点困惑(SmartTable 正在工作,我可以毫无问题地添加/更改 UserText Annotations)。
此外,当我使用创建的 CDSView 和标准 SAP 模板(例如在概览页面模板中的卡片中)时,它工作得很好。对于任何解决方案或提示,我都非常感谢,因为这让我很困扰,我不明白为什么 SmartTable 可以工作,但图表却不能。 提前致谢!
CDS查看:
@AbapCatalog.sqlViewName: 'ZYSS20MSGITEST3'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Test view 3'
@UI: {headerInfo: {
typeName:'Test3',
title:{
type: #STANDARD,
label: 'Suche'
}
}
}
@UI.chart: [{
qualifier: 'OccupiedSeats',
chartType: #COLUMN,
dimensions: [ 'FlightCode' ],
measures: [ 'MaximumCapacity', 'EconomyOccupiedSeats', 'BusinessOccupiedSeats', 'FirstOccupiedSeats' ]
}]
define view ZY_SS20_MSGI_TEST3
as select from sflight
{
@UI.lineItem: [ { position: 10 } ]
key concat(carrid, connid) as FlightCode,
@UI.lineItem: [ { position: 30 } ]
seatsmax as MaximumCapacity,
@UI.lineItem: [ { position: 40 } ]
seatsocc as EconomyOccupiedSeats,
@UI.lineItem: [ { position: 50 } ]
seatsocc_b as BusinessOccupiedSeats,
@UI.lineItem: [ { position: 60 } ]
seatsocc_f as FirstOccupiedSeats
}
Dashboard.controller.js:
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function(Controller) {
"use strict";
return Controller.extend("ZY_SS20_MSGI_TESTN.controller.Dashboard", {
onInit: function() {
this._oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/ZY_SS20_MSGPROGRESSSRV_SRV/", true);
this.getView().setModel(this._oModel);
}
});
<mvc:View controllerName="ZY_SS20_MSGI_TESTN.controller.Dashboard" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" xmlns:smartChart="sap.ui.comp.smartchart"
xmlns:data="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1" xmlns:smartFilterBar="sap.ui.comp.smartfilterbar" xmlns:smartTable="sap.ui.comp.smarttable"
displayBlock="true" xmlns="sap.m">
<App>
<pages>
<Page title="{i18n>title}">
<content>
<VBox fitContainer="true">
<smartFilterBar:SmartFilterBar
id="smartFilterBar" entitySet="ZY_SS20_MSGI_TEST3" />
<smartTable:SmartTable id="mySmartTable"
entitySet="ZY_SS20_MSGI_TEST3" smartFilterId="smartFilterBar"
tableType="Table" useExportToExcel="true"
useVariantManagement="false" useTablePersonalisation="false"
header="Throughput" showRowCount="true" enableAutoBinding="true"
initiallyVisibleFields="FlightCode,MaximumCapacity,EconomyOccupiedSeats,BusinessOccupiedSeats,FirstOccupiedSeats">
</smartTable:SmartTable>
<smartChart:SmartChart entitySet="ZY_SS20_MSGI_TEST3"
enableAutoBinding="true" id="mySmartChart" useVariantManagement="false"
useChartPersonalisation="false" header="Test"></smartChart:SmartChart>
</VBox>
</content>
</Page>
</pages>
</App>
</mvc:View>