gpt4 book ai didi

odata - 扩展 FIORI 应用程序中的无效属性

转载 作者:行者123 更新时间:2023-12-02 03:43:07 25 4
gpt4 key购买 nike

我们正在实现扩展的 My Quotations Fiori 应用程序。基本上,我们在 UI 中添加了一个新字段“销售订单”。该字段从后端获取数据,因此我们还扩展了 OData 服务。在第一个 View 中,我们可以成功调用数据。但是每当我们通过单击“编辑”按钮导航到下一个 View 时,我们都会收到此错误

属性“SalesOrder”无效。选择“刷新”以更新定价信息。

有人知道如何解决这个问题吗?

这是我们的 S3 View Controller 的自定义代码。我们使用 WEB IDE 来创建扩展 btw。第二个功能用于在报价单没有关联的 SO 时创建销售订单。

manageSalesOrderFields: function() {
alert("manageSalesOrderFields");
var salesOrderId = "";

// hide all fields
view.byId("salesOrderLabel").setVisible(false);
view.byId("salesOrderText").setVisible(false);
view.byId("triggerSalesOrderLabel").setVisible(false);
view.byId("triggerSalesOrderButton").setVisible(false);

$.getJSON("/sap/opu/odata/sap/zlord_my_quotation_srv/QuotationHeaderSet('" + quotationId + "')",
function(data) {
alert("enterHere");
salesOrderId = data.d.SalesOrder;
alert(salesOrderId);
if (salesOrderId !== "" ){
view.byId("salesOrderLabel").setVisible(true);
view.byId("salesOrderText").setVisible(true);
}else{
view.byId("triggerSalesOrderLabel").setVisible(true);
view.byId("triggerSalesOrderButton").setVisible(true);
view.byId("triggerSalesOrderButton").detachPress(sap.ui.controller("...").createSalesOrder);
view.byId("triggerSalesOrderButton").attachPress(sap.ui.controller("...").createSalesOrder);
}
});
},
createSalesOrder: function () {
var createSalesOrderDialog = new sap.m.Dialog("createSoDialog", {
title: "Create Sales Order",
icon: "sap-icon://sales-order",
content: [
new sap.ui.core.HTML({content:"<p style='margin:0;padding: 16px;'>Do want to create a sales order?</p>"})
],
buttons:[
new sap.m.Button({
text: "Yes",
press : function() {
var oModel = new sap.ui.model.odata.ODataModel('/sap/opu/odata/sap/zlord_my_quotation_srv/');
var oParameter = {
"QuotationID" : quotationId
};
oModel.callFunction('/CreateSalesOrder', 'GET', oParameter, 'null',
function (oData, oResponse) {
var responseMessage = JSON.stringify(oResponse.body);
var responseMessageStart = responseMessage.search('<d:Message>');
var responseMessageEnd = responseMessage.search('</d:Message>');
responseMessage = responseMessage.substring(responseMessageStart + 11, responseMessageEnd);

//show MessageToast
sap.m.MessageToast.show(responseMessage);
view.byId("triggerSalesOrderLabel").setVisible(false);
view.byId("triggerSalesOrderButton").setVisible(false);

console.log(responseMessage);
},
function (oError) {
sap.m.MessageToast.show('Error - see log');
console.log(oError);
}
);
createSalesOrderDialog.close();
createSalesOrderDialog.destroy();
}
}),
new sap.m.Button({
text: "No",
press : function() {
createSalesOrderDialog.close();
createSalesOrderDialog.destroy();
}
})
]
});
createSalesOrderDialog.open();
}

我们没有在下一个 View Controller (CreateQuotations.view.controller.js) 上编辑任何内容,因为它与我们在该 View 上显示 SO 编号无关。

最佳答案

错误是因为这一行:

salesOrderId = data.d.SalesOrder;

如何解决?

第 1 步:首先在网络选项卡中检查通话结果:

/sap/opu/odata/sap/zlord_my_quotation_srv/QuotationHeaderSet('quotationIdId');

示例:

enter image description here

第 2 步:检查结果层次结构。怎么办?

console.log(数据);//成功调用

第 3 步:然后将您的陈述重组为如下内容

salesOrderId = data.d.results[0].SalesOrder;

希望这有帮助!

关于odata - 扩展 FIORI 应用程序中的无效属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31318451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com