我是SAP UI5(Html / JS)的新手。我目前正在为SRM UI插件环境中的自由文本项订购表单。用户填写完表单后,单击“提交”按钮,该表单应消失,并将该项目转移回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请求(字符串)。如果我打开一个空的浏览器页面,请将此字符串粘贴到地址栏中,然后按Enter键,该项目将被转移到购物车。我想知道是否应该在代码中使用xml http请求来模拟它。有谁知道如何做?
提前致谢!
最佳答案
OCI协议不是基于OData的,因此您不能使用oDataModel.create
将数据发布到SRM。实际上,您甚至不应该使用XMLHttpRequest,而是使用普通的旧表单发布来发布数据。该表单发布的目的是将浏览器控件也传递回SRM应用程序,以便它可以将用户重定向到购物篮。
因此,除了花哨的ODataModels和XMLHTTPRequest外,您还必须返回到旧的表格。当然,您可以使用jQuery和UI5整理表单中的信息。