Ich versuche, die IBAN im Assistenten in SAPUI5 zu validieren. Dafür bin ich auf V2 ODataModel
(sap.ui.model.odata.v2.ODataModel) 上使用 functionImport
.
Die Anfrage gab den Statuscode 202 zurück, schlug jedoch tatsächlich fehl. Hier ist die Antwort (von der Registerkarte „Firefox-Netzwerk“):
--1D57E7CB0DD73AB15048B36CC96993D60 Content-Type: multipart/mixed; boundary=1D57E7CB0DD73AB15048B36CC96993D61 Content-Length: 1303 --1D57E7CB0DD73AB15048B36CC96993D61 Content-Type: application/http Content-Length: 1134 content-transfer-encoding: binary HTTP/1.1 200 OK Content-Type: application/json Content-Length: 950 dataserviceversion: 1.0 cache-control: no-cache, no-store pragma: no-cache content-id: id-1687346500037-256 {"d":{"CheckIBAN":{"__metadata":{"type":"XXXX"},"AccountID":"XXXXXX","IBAN":"DEXXXX","BankID":"","WithInOutPayment":true,"SepaNotifText":"XXX"}}} --1D57E7CB0DD73AB15048B36CC96993D61-- --1D57E7CB0DD73AB15048B36CC96993D60 Content-Type: application/http Content-Length: 1111 content-transfer-encoding: binary HTTP/1.1 400 Bad Request Content-Type: application/json;charset=utf-8 Content-Length: 991 dataserviceversion: 1.0 {"error":{"code":"XXX/076","message":{"lang":"de","value":"XXX"},"innererror":{"application":{"component_id":"XXX","service_namespace":"XXX","service_id":"XXXX","service_version":"0001"},"transactionid":"XXX","timestamp":"XXX","Error_Resolution":{"SAP_Transaction":"XXX","SAP_Note":"XXXX"},"errordetails":[{"code":"XXX/076","message":"XXX","propertyref":"","severity":"error","target":""}]}}} --1D57E7CB0DD73AB15048B36CC96993D60--
(Alle vertraulichen Inhalte entfernen) Dies ist das Ergebnis in der Browserkonsole:
Es muss also irgendwo registriert werden. Mein Code zum Registrieren von Rückrufen lautet wie folgt:
this.SERVICE.functionImport("CheckIBAN", XXX.Constants.HTTP_POST, XXX, true, { fnSuccess: jQuery.proxy(function (oData) { fnCallback(oData); }, this), fnError: fnError });
Bitte beachten Sie, dass die functionImport
-Funktion nur ein Wrapper um sap.ui.model.odata.v2.ODataModel.callFunction ist und denselben Vorgang ausführt.
Egal was ich eingebe (richtige oder falsche Eingabe), es ruft immer fnSuccess
auf.
Wenn ich ODataModel
的 read
函数(所以只是一个简单的 GET
-request)时,一切正常,并且在发生错误时触发 fnError
verwende.
您的问题不包含问题“?”
我假设您问为什么不调用“error”?
如果http请求失败,则调用“error”。当您使用批处理时,changeSet 中的任何错误都不会由此 API 处理...UI5 v2 不是一个非常优雅的实现...
另请参阅:https://github.com/SAP/openui5/问题/1382#issuecomment-288723906