Saya cuba mengesahkan IBAN dalam wizard dalam SAPUI5. Saya menggunakan V2 ODataModel
(sap.ui.model.odata.v2.ODataModel) 上使用 functionImport
untuk ini.
Permintaan mengembalikan kod status 202 tetapi sebenarnya gagal. Berikut ialah respons (dari tab Rangkaian 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--
(buang semua kandungan sulit) Ini adalah hasil dalam konsol penyemak imbas:
Jadi ia perlu didaftarkan di suatu tempat. Kod saya untuk mendaftar panggilan balik adalah seperti berikut:
this.SERVICE.functionImport("CheckIBAN", XXX.Constants.HTTP_POST, XXX, true, { fnSuccess: jQuery.proxy(function (oData) { fnCallback(oData); }, this), fnError: fnError });
Sila ambil perhatian bahawa fungsi functionImport
hanyalah pembalut di sekeliling sap.ui.model.odata.v2.ODataModel.callFunction dan melakukan operasi yang sama.
Tidak kira apa yang saya masukkan (input betul atau salah), ia sentiasa memanggil fnSuccess
.
Bila dah guna ODataModel
的 read
函数(所以只是一个简单的 GET
-request)时,一切正常,并且在发生错误时触发 fnError
.
Soalan anda tidak mengandungi soalan "?"
Saya andaikan anda bertanya mengapa "ralat" tidak dipanggil?
Jika permintaan http gagal, "ralat" dipanggil. Apabila anda menggunakan pemprosesan kelompok, sebarang ralat dalam changeSet tidak akan dikendalikan oleh API ini...UI5 v2 bukanlah pelaksanaan yang sangat elegan...
Lihat juga: https://github.com/SAP/openui5/issue/1382#issuecomment-288723906