如何在sap ui5中将OData模型转换为实体集

时间:2015-06-29 08:36:42

标签: javascript odata sapui5

我想在这个sapui5 explored sample中使用智能表,但问题是我有一个OData模型,该示例仅显示我们如何处理与模拟数据的绑定,而且我也不了解元数据。 xml文件。我猜oData模型也有自己的元数据文档。这是控制器中的代码:

this.DataPath = "QuarterPerformanceSet";
var oModel = new sap.ui.model.odata.ODataModel(model.Config.getServiceUrl(), true, model.user, password); 
oModel.setCountSupported(false);
oSmartTable.setModel(oModel);
oSmartTable.setEntitySet(this.DataPath);

但它不起作用。我收到了这个错误:

无法从./Component-changes.json加载Component-changes.json。检查“找不到文件”或解析错误。原因:未找到 -

getChanges'失败: -

我怎样才能使用我的odata模型设置entitySet?

我的观点:

<smartTable:SmartTable id="idSmartTable" tableType="Table" 
useExportToExcel="true" useVariantManagement="false" 
useTablePersonalisation="true" header="Line Items" showRowCount="true"
persistencyKey="SmartTableAnalytical_Explored" enableAutoBinding="true"/>

如果有人可以提供帮助,请提前感谢。

更新2:我根据此discussion

重新绑定表格
this.DataPath = "QuarterPerformanceSet";
var oModel = new sap.ui.model.odata.ODataModel(model.Config.getServiceUrl(), true, model.user, password); 
oModel.setCountSupported(false);
var oSmartTable = this.getView().byId("idSmartTable");
oSmartTable.setModel(oModel);
oSmartTable.setEntitySet(this.DataPath);
oSmartTable.rebindTable();

伤感地说,但还是我得到同样的错误。

1 个答案:

答案 0 :(得分:1)

您需要传递实体集的名称,而不是模型实例。例如,如果您有一个实体集客户定义,您只需:

oSmartTable.setEntitySet("Customers");

或将属性entitySet添加到表声明中。

<smartTable:SmartTable id="idSmartTable" entitySet="ENTITY_SET" .../>