SAPUI5-未定义OData
我正在尝试向sap网关服务发送一些数据。 我使用这个方法“save”,但是当我在代码中尝试这样做时,我得到一个错误“OData未定义” 下面是我尝试这样做的方法SAPUI5-未定义OData,odata,sapui5,Odata,Sapui5,我正在尝试向sap网关服务发送一些数据。 我使用这个方法“save”,但是当我在代码中尝试这样做时,我得到一个错误“OData未定义” 下面是我尝试这样做的方法 handleConfirmationMessageBoxPress: function(oEvent) { var bCompact = !!this.getView().$().closest(".sapUiSizeCompact").length; MessageBox.confirm
handleConfirmationMessageBoxPress: function(oEvent) {
var bCompact = !!this.getView().$().closest(".sapUiSizeCompact").length;
MessageBox.confirm(
"Deseja confirmar a transferência?", {
icon: sap.m.MessageBox.Icon.SUCCESS,
title: "Confirmar",
actions: [sap.m.MessageBox.Action.OK, sap.m.MessageBox.Action.CANCEL],
onClose: function(oAction) {
if (oAction == "OK") {
var oParameters = {};
oParameters.loginfrom = this.getView().byId("multiInput").getValue();
oParameters.loginfrom = this.getView().byId("loginPara").getValue();
oParameters.loginfrom = this.getView().byId("datade").getValue();
oParameters.loginfrom = this.getView().byId("datapara").getValue();
OData.request({
requestUri : "http://<host name>:<port no>/sap/opu/odata/sap/ZMM_EMP_SRV/EmployeeSet",
method : "GET",
headers : {...}
},
function(data, response) {
...
var oHeaders = {
... };
OData.request({
requestUri : "http://<host name>:<port no>/sap/opu/odata/sap/ZMM_EMP_SRV/EmployeeSet",
method : "POST",
headers : oHeaders,
data:oParameters
},
function(data,request) {
MessageToast.show("Transferência realizada!");
location.reload(true);
}, function(err) {
MessageToast.show("A transferência falhou!");
});
}, function(err) {
var request = err.request;
var response = err.response;
alert("Error in Get — Request " + request + " Response " + response);
});
} else {
...
handleConfirmationMessageBoxPress:功能(oEvent){
var bCompact=!!this.getView().$().closest(“.sapuizizecompact”).length;
MessageBox.confirm(
“是否确认转让?”{
图标:sap.m.MessageBox.icon.SUCCESS,
标题:“确认人”,
操作:[sap.m.MessageBox.Action.OK,sap.m.MessageBox.Action.CANCEL],
onClose:函数(OAAction){
如果(OAAction==“OK”){
变量运算参数={};
oParameters.loginfrom=this.getView().byId(“多输入”).getValue();
oParameters.loginfrom=this.getView().byId(“loginPara”).getValue();
oParameters.loginfrom=this.getView().byId(“datade”).getValue();
oParameters.loginfrom=this.getView().byId(“datapara”).getValue();
奥达塔请求({
requestUri:“http://:/sap/opu/odata/sap/ZMM_EMP_SRV/EmployeeSet”,
方法:“获取”,
标题:{…}
},
功能(数据、响应){
...
var oHeaders={
... };
奥达塔请求({
requestUri:“http://:/sap/opu/odata/sap/ZMM_EMP_SRV/EmployeeSet”,
方法:“张贴”,
标题:oHeaders,
数据:光电参数
},
功能(数据、请求){
MessageToast.show(“Transferência realizada!”);
位置。重新加载(true);
},函数(err){
MessageToast.show(“一次转移!”;
});
},函数(err){
var request=err.request;
var响应=错误响应;
警报(“Get中的错误-请求”+请求+“响应”+响应);
});
}否则{
...
这是一个非常古老的示例,使用的是旧技术。
您应该将此行添加到代码中:
jQuery.sap.require("sap.ui.model.odata.datajs");
这应该可以解决您的oData未定义的问题。
通常,您应该阅读使用odata模型的read()函数的较新示例。您试图使用datajs库中的odata全局对象。该库确实随OpenUI5提供,但在我看来,您不应该直接使用它(但请使用的方法;无法真正保证UI5将来会继续提供此第三方库) 您很可能会收到错误,因为UI5尚未加载库。通常,UI5会延迟加载库,因此您必须请求UI5为您加载它(在您链接的教程中,它是由OData模型在后台加载的)。要执行此操作,您可以使用(jQuery.sap.require(“sap.ui.thirdparty.datajs”))或在控制器开头列出调用中的依赖项(例如
sap.ui.define(['sap/ui/thirdparty/datajs'],function(datajs){…}
)
稍后编辑:您还可以使用
jQuery.sap.require(“sap.ui.model.odata.datajs”)
调用,但该模块已从那里移动,它将有效地将您重定向到新位置。X未定义通常意味着给定变量X仍未定义。您必须正确初始化OData变量。遗憾的是,在阅读了您的示例后,我不知道作者在想什么。也许OData是某个全局变量ar在他的例子中?我下载了datajs-1.0.1.min.js,放在我的目录中并包含在我的index.html中,所以它可以工作。它正确吗?你不需要单独下载datajs。正如我在回答中提到的,“这个库随OpenUI5一起提供“。这意味着默认情况下UI5中包含库,但它仅在需要或您请求时加载。要请求它,您可以使用回答中解释的require/define调用。我不加载datajs-1.0.1.min.js,放在我的目录中并包含在我的index.html中,因此它可以工作。是否正确?