2016-04-05 13 views
1

Ich benötige einen manuellen OData-Aufruf von SAPUI5 an mein SAP-Gateway. (ohne Datenbindung)SAPUI5 - OData Read-Callbacks nicht ausgelöst

Dafür ich bin mit dem folgenden Code:

oModel.read("/ZTestSet"), 
    null,null,false, function(oData, oResponse){ 
     alert("success"); 
    }, 
    function(oError){ 
     alert("error"); 
} 

Ive debuggt es auf dem SAP-System. Ich habe den Anruf erhalten und die et_entityset mit den erforderlichen Daten gefüllt.

Das Problem ist, dass keine Funktion als Callback ausgelöst wird. Weder Erfolg noch Irrtum. (Ich kann nicht einen Fehler auf dem Gateway oder jemanden finden, sonst.)

Verhalten im Browser des Developer Tools:

HEADERS: 

Request Method:GET 
Status Code:200 OK 

RESPONSE HEADERS: 
cache-control:no-store, no-cache 
Connection:keep-alive 
content-encoding:gzip 
Content-Length:827 
Content-Type:application/atom+xml; charset=utf-8 
dataserviceversion:2.0 
Date:Tue, 05 Apr 2016 12:08:34 GMT 
Proxy-Connection:keep-alive 
sap-metadata-last-modified:Tue, 05 Apr 2016 10:06:59 GMT 

REQUEST HEADERS: 
Accept:application/atom+xml,application/atomsvc+xml,application/xml 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:en-US 
Cache-Control:no-cache 
DataServiceVersion:2.0 

RESPONSE: 
<feed xmlns="http://www.w3.org/2005/Atom" 
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xml:base="<<ADDRESS>>"> 
    <id><<ADDRESS>></id> 
    <title type="text"><<FUNCTION>></title> 
    <updated>2016-04-05T12:08:34Z</updated> 
    <author> 
     <name /> 
    </author> 
    <<LIST OF ENTRIES>> 
</feed> 

wie ein erfolgreicher Aufruf sieht.

+0

Können Sie einen Blick auf die Antwort haben Sie in Ihrem Browser Developer Tools? – hirse

+0

Ich habe die Antwortdaten hinzugefügt. (Ich denke, das sieht gut aus.) –

Antwort

0

Was für ein dummer Fehler.

Ich schloss die Klammer nach der URL. Es sollte natürlich nach dem letzten Parameter geschlossen werden. In meinem Fall nach der Fehler-Funktion.

Rechts Code:

oModel.read("/ZTestSet", 
    null,null,false, function(oData, oResponse){ 
     alert("success"); 
    }, 
    function(oError){ 
     alert("error"); 
}); 
0

Legen Sie die Debuger-Zeile sowohl in den Erfolgs- als auch in den Fehleraufrufen ab und prüfen Sie, ob sie im Browser ausgelöst wird. oModel.read ist ein asynchroner Aufruf, dh er wartet nicht auf die Antwort und löst die Erfolgs- oder Fehlermethode erst aus, nachdem er eine der Antworten vom Server erhalten hat. Wenn Sie also warten, könnte es so aussehen, als würde nichts passieren.

   debugger; 
+0

Es ist ein asynchroner Anruf, ja ich weiß. Ich habe es auch mit der 'debugger'-Anweisung versucht, aber auch nach einigen Minuten wird es nicht ausgelöst. –