Hallo zusammen,
ich versuche via WebService (Domino 8.5.2) eine Datei auszuliefern, leider funktioniert das nicht =)
Call eObjekt.ExtractFile(Pfad & eObjekt.Name)
Set mStream = session.CreateStream()
Call mStream.Open(Pfad & eObjekt.Name)
Print "Bytes gelesen: " & mStream.Bytes
[...]
Call mStream.Close()
Der Code, das abhängen einer Datei aus einem RichText Feld, funktioniert. Das laden in den Stream auch, zu sehen an der korrekten Anzahl ausgegebener Bytes. Für die Rückgabe aus dem WebService muss ich mit XSD_BASE64BINARY arbeiten. Hierzu gibt es eine Variable retval mit dem entsprechenden Typ. In obigem Code wird an der Stelle [...] folgendes ausgeführt:
Call retval.setValueFromNotesStream(mStream)
Hier liegt irgendwo das Problem (aufgetreten mit einem PHP Consumer). Wenn ich den WebService mit SoapUI zur Diagnose aufrufe, bleibt das Problem bestehen.
Es werden nur die letzten ca. 22.000 Zeichen des Base64 Strings vom Domino zurück übergeben. Die Testdatei ist 55kb groß. Der zurückgelieferte String begint bei ca. 33kb der Datei und geht bis zum letzten Zeichen der Datei. Aber der Anfang der Datei fehlt.
Etwas hinderlich bei dem Ganzen ist die mangelnde Dokumentation der WebService Datentypen seitens IBM. Allein wenn man nach der Methode setValueFromNotesStream googlet, gibt es nur extrem wenige Einträge. Macht es nicht unbedingt einfacher =)
Hat jemand dieses Problem schon mal gehabt oder weiß eine Lösung? Ggf. auch eine Alternative zur Übertragung größerer Dateien via WebService und Notes?
Viele Grüße,
0xse