我是SAP UI5(Html / JS)的新手。我目前正在SRM UI AddOn环境中开发一个用于自由文本项排序的表单。当用户填写完表单后,单击“提交”按钮,表单将消失,项目应转移回SRM购物车。现在我在实施物品转移方面遇到了困难。我在本文中尝试了解决方案(SAPUI5 oModel.create() - how to post data to the SAP backend?),但代码执行后没有任何反应。
var oParameters = {
"NEW_ITEM-DESCRIPTION[1]": description,
"NEW_ITEM-QUANTITY[1]": itemQuantity,
"NEW_ITEM-UNIT[1]": itemUnit,
"NEW_ITEM-PRICE[1]": itemPrice,
"NEW_ITEM-CURRENCY[1]": itemCurrency
};
// use oDataModel.create() to POST free text item to SRM shopping cart
var oDataModel = this.getView().getModel();
// Enable messagebox from jQuery
jQuery.sap.require("sap.ui.commons.MessageBox");
oDataModel.create(hook_url, oParameters, null,
function() {
sap.ui.commons.MessageBox.show(sap.ui.commons.MessageBox.alert("Success!"));
},
function() {
sap.ui.commons.MessageBox.alert("Error!");
}
);
我可以手动创建一个结合表单位置(hook_url)和项目信息的http请求(字符串)。如果我打开一个空的浏览器页面,将此字符串粘贴到地址栏中并点击输入该项目将转移到购物车。我想知道是否应该在代码中使用xml http请求来模拟它。有没有人知道如何做到这一点?
提前致谢!
答案 0 :(得分:1)
OCI协议不基于OData,因此您无法使用oDataModel.create
将数据发布到SRM。实际上,您甚至不应该使用XMLHttpRequest,而是使用普通的旧表单帖子来取代您的数据。该表单帖子的目的是您还将浏览器控制权传递回SRM应用程序,以便它可以将用户重定向到购物篮。
因此,你不得不回到花哨的泛音ODataModels和XMLHTTPRequest,而不得不回到原来很好的帖子。您当然可以使用jQuery和UI5整理表单中的信息。