Heim  >  Fragen und Antworten  >  Hauptteil

Nach dem Aufruf von SAPUI5 callFunction() wird der Errorhandler nicht aufgerufen

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

P粉432930081P粉432930081179 Tage vor429

Antworte allen(1)Ich werde antworten

  • P粉338969567

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

    您的问题不包含问题“?”

    我假设您问为什么不调用“error”?

    如果http请求失败,则调用“error”。当您使用批处理时,changeSet 中的任何错误都不会由此 API 处理...UI5 v2 不是一个非常优雅的实现...

    另请参阅:https://github.com/SAP/openui5/问题/1382#issuecomment-288723906

    Antwort
    0
  • StornierenAntwort