J'essaie de valider l'IBAN dans l'assistant de SAPUI5. Je suis en V2 ODataModel
(sap.ui.model.odata.v2.ODataModel) 上使用 functionImport
pour ça.
La requête a renvoyé un code d'état 202 mais a en fait échoué. Voici la réponse (depuis l'onglet Réseau Firefox) :
--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--
(supprimer tout contenu confidentiel) Voici le résultat dans la console du navigateur :
Il faut donc qu'il soit enregistré quelque part. Mon code pour enregistrer les rappels est le suivant :
this.SERVICE.functionImport("CheckIBAN", XXX.Constants.HTTP_POST, XXX, true, { fnSuccess: jQuery.proxy(function (oData) { fnCallback(oData); }, this), fnError: fnError });
Veuillez noter que la fonction functionImport
n'est qu'un wrapper autour de sap.ui.model.odata.v2.ODataModel.callFunction et effectue la même opération.
Peu importe ce que je saisis (saisie correcte ou erronée), il appelle toujours fnSuccess
.
Quand j'utilise ODataModel
的 read
函数(所以只是一个简单的 GET
-request)时,一切正常,并且在发生错误时触发 fnError
.
Votre question ne contient pas la question "?"
Je suppose que vous demandez pourquoi « erreur » n'est pas appelée ?
Si la requête http échoue, "erreur" est appelée. Lorsque vous utilisez le traitement par lots, les erreurs dans le changeSet ne seront pas gérées par cette API... UI5 v2 n'est pas une implémentation très élégante...
Voir aussi : https://github.com/SAP/openui5/issue/1382#issuecomment-288723906