将购物车项目转移回SAP SRM

时间:2016-07-06 08:51:23

标签: javascript html post sapui5

我是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请求来模拟它。有没有人知道如何做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:1)

OCI协议不基于OData,因此您无法使用oDataModel.create将数据发布到SRM。实际上,您甚至不应该使用XMLHttpRequest,而是使用普通的旧表单帖子来取代您的数据。该表单帖子的目的是您还将浏览器控制权传递回SRM应用程序,以便它可以将用户重定向到购物篮。

因此,你不得不回到花哨的泛音ODataModels和XMLHTTPRequest,而不得不回到原来很好的帖子。您当然可以使用jQuery和UI5整理表单中的信息。