Nach dem Aufruf von SAPUI5 callFunction() wird der Errorhandler nicht aufgerufen
P粉432930081
P粉432930081 2024-04-04 18:06:36
0
1
532

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粉432930081
P粉432930081

Antworte allen(1)
P粉338969567

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

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

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

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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage