Javascript 用Edm.Time类型对oData模型进行PUT方法
我正在尝试用时间元素(键入Edm.time)实现可编辑表元素。当更改表中的值并且应用程序发送PUT请求时,就会出现问题 时间对象的值是例如“PT11H00M00S”,我通过元数据分配了类型“Edm.time”,以避免“Edm.string”比较问题。但现在oData服务是SAP的,如下所示。如何格式化值以避免此问题?提前谢谢 2015-09-22 09:52:09出现以下问题:HTTP请求失败400,请求错误,Javascript 用Edm.Time类型对oData模型进行PUT方法,javascript,time,odata,sapui5,put,Javascript,Time,Odata,Sapui5,Put,我正在尝试用时间元素(键入Edm.time)实现可编辑表元素。当更改表中的值并且应用程序发送PUT请求时,就会出现问题 时间对象的值是例如“PT11H00M00S”,我通过元数据分配了类型“Edm.time”,以避免“Edm.string”比较问题。但现在oData服务是SAP的,如下所示。如何格式化值以避免此问题?提前谢谢 2015-09-22 09:52:09出现以下问题:HTTP请求失败400,请求错误,CX_SY_CONVERSION_NO_DATE_TIME/67aa6842baa80
CX_SY_CONVERSION_NO_DATE_TIME/67aa6842baa80b7de100000000a15523c
Value pnandtnanhannanmnan.NaNS不代表有效的日期/时间56003c39 feb4710de10000000a1010c20150922075209.8761770在SAP NW网关集线器系统上运行事务/IWFND/ERROR_日志,并搜索带有上述时间戳的条目以获取更多详细信息请参阅SAP Note 1797736以获取更多信息错误分析()有关使用$batch()的详细信息,请参阅SAP说明1869434-
在SAP方面,我发现收到了以下请求
--batch_6bba-3b1b-e53d
content-type: multipart/mixed; boundary=changeset_3e78-e6a1-305d
--changeset_3e78-e6a1-305d
content-type: application/http
content-transfer-encoding: binary
PUT modelData(pdsnr='000000000130') HTTP/1.1
Accept-Language: EN
Accept: application/atom+xml,application/atomsvc+xml,application/xml
MaxDataServiceVersion: 2.0
DataServiceVersion: 2.0
Content-Type: application/atom+xml
Content-Length: 716
<a:entry xmlns:a="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"><a:author><a:name/></a:author><a:category term="ns.type" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/><a:content type="application/xml"><m:properties><d:pdsnr m:type="Edm.String">000000000130</d:pdsnr><d:fullName m:type="Edm.String"/><d:alias m:type="Edm.String">ABCD</d:alias><d:pernr>95000104</d:pernr><d:direction m:type="Edm.String">P10</d:direction><d:date m:type="Edm.DateTime">2015-09-21T00:00:00</d:date><d:time m:type="Edm.Time">PNaNDTNaNHNaNMNaN.NaNS</d:time></m:properties></a:content></a:entry>
--changeset_3e78-e6a1-305d--
--batch_6bba-3b1b-e53d--
——批次6bba-3b1b-e53d
内容类型:多部分/混合;边界=变更集_3e78-e6a1-305d
--变更集_3e78-e6a1-305d
内容类型:应用程序/http
内容传输编码:二进制
PUT modelData(pdsnr='000000000 130')HTTP/1.1
接受语言:EN
接受:application/atom+xml、application/atomsvc+xml、application/xml
MaxDataServiceVersion:2.0
数据服务版本:2.0
内容类型:应用程序/atom+xml
内容长度:716
000000000 130ABCD95000104P102015-09-21T00:00:00PNANDTNANHNANNANMNAN.NaNS
--变更集_3e78-e6a1-305d--
--批次6bba-3b1b-e53d--
看起来好像是提供给模型调用的上下文的元数据属性中的问题
var obj = oSelectedItem.getBindingContext().getObject();
var context = oEvent.getSource().getBindingContext().getObject();
context.ldate = obj.ldate;
context.ltime = obj.ltime;
oController.onRowUpdate("/modelData(pdsnr='"+context.pdsnr+"')",
context);
现在它的工作原理是
var obj = oSelectedItem.getBindingContext().getObject();
var context = oEvent.getSource().getBindingContext().getObject();
context.ldate = obj.ldate;
context.ltime = obj.ltime;
oController.onRowUpdate("/modelData(pdsnr='"+context.pdsnr+"')",
{ldate: obj.ldate,
ltime: obj.ltime,
});