Maison  >  Questions et réponses  >  le corps du texte

Après l'appel de SAPUI5 callFunction(), Errorhandler n'est pas appelé

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 ODataModelread 函数(所以只是一个简单的 GET-request)时,一切正常,并且在发生错误时触发 fnError .

P粉432930081P粉432930081179 Il y a quelques jours426

répondre à tous(1)je répondrai

  • P粉338969567

    P粉3389695672024-04-05 00:39:04

    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

    répondre
    0
  • Annulerrépondre