我对调用OData读取操作时使用的日期格式感到困惑,其中参数在entityset括号中提到。如果您可以针对每个
粘贴答案,那就太棒了如果我们要在实体集参数中传递值,如何使用ODataModel的read()
方法?
var sPath ="/EMP_DETAILSSet(Empid='50160458'/*, ...*/)";
oBackEndModel.read(sPath, {
success: this._fGetDetailsSuccess.bind(this),
error: this._fBackEndInvocationError.bind(this)
});
这是遵循的方法吗?或者我们还有其他方法吗?
如何使用OData将日期设置为实体设置关键参数?请更正以下代码段(在运行时给出错误的请求错误),其中dBegDate
和dEndDate
是JS标准日期对象。
var sPath ="/EMP_DETAILSSet(Empid='50160458',Begdate="+ dBegDate.toJSON() + ",Enddate=" + dEndDate.toJSON() + ",HAFId=' ')";
oBackEndModel.read(sPath, {
success: this._fGetDetailsSuccess.bind(this),
error: this._fBackEndInvocationError.bind(this)
});
如何执行多个展开操作以及上面提到的实体集参数?请修复以下代码中的错误,因为它对我不起作用。
var sPath ="/EMP_DETAILSSet(Empid='50160458',Begdate="+ dBegDate.toJSON() + ",Enddate=" + dEndDate.toJSON() + ",HAFId=' ')";
oBackEndModel.read(sPath, {
urlParameters: {
$expand: "NAVTODETAIL,NAVTOPROFILE,NAVTOREPORTEES"
},
success: this._fGetDetailsSuccess.bind(this),
error: this._fBackEndInvocationError.bind(this)
});
我遵循了Sunil的建议。 sPath
在运行时看起来如下:
"/EMP_DETAILSSet(Empid='50160458',Begdate=datetime'2014-03-11T14:49:52',Enddate=datetime'9999-12-31T14:49:52',HAFId=' ')"
当我尝试这个时,它给了我以下错误:
2018-06-13 10:56:31.872300发生以下问题:HTTP请求失败404,未找到,{“错误”:{“code”:“005056A509B11EE1B9A8FEC11C21D78E”,“message”:{“lang”:“en “,”value“:”找不到段'49:52'的资源,Enddate = datetime'9999-12-31T14:49:52',HAFId =''。“},”innererror“:{”transactionid“ :“5B20F78A93457852E10000000ACD4014”,“timestamp”:“20180613052610.2725590”,“Error_Resolution”:{“SAP_Transaction”:“在SAP Gateway集线器系统上运行事务/ IWFND / ERROR_LOG并搜索上面带有时间戳的条目以获取更多详细信息”,“SAP_Note” :“请参阅SAP Note 1797736以进行错误分析......”}}}}
你知道为什么吗?
请注意,以下URL工作正常,并在从SAP Gateway Client执行时返回结果: / SAP / OPU /的OData / XXX / YYYY_SRV / EMP_DETAILSSet(EMPID = '50160458',Begdate = datetime'2014-03-11T14:49:52' ,结束日期= datetime'9999-12-31T14:49:52' ,哈菲德='')?$ expandNAVTODETAIL,NAVTOPROFILE,NAVTOREPORTEES& $ format = json
答案 0 :(得分:0)
首先要检查您 SAP Netweaver网关中定义的primitive type
是什么。
最有可能的是,它将是Edm.DateTime
。您可以使用$metdata
服务电话来获取此信息。
OData具有Edm.DateTime
datetime'yyyy-mm-ddThh:mm[:ss[.fffffff]]'
注意:datetime
和引用部分之间不允许有空格。 datetime不区分大小写
示例:datetime'2000-12-12T12:00'
如果是JSON Format
表示,
示例:"FlightDate": "/Date(1354665600000)/"
它应该类似于:
var sPath = "/EMP_DETAILSSet(Empid='50160458',Begdate=datetime'2014-03-11T14:49:52',Enddate=datetime'2014-03-11T14:49:52',HAFId = ' ')";
oBackEndModel.read(sPath, {
urlParameters: {
$expand: "NAVTODETAIL,NAVTOPROFILE,NAVTOREPORTEES"
},
success: jQuery.proxy(this._fGetDetailsSuccess, this),
error: jQuery.proxy(this._fBackEndInvocationError, this)
});