Codeunit-Webservice: Rückgabe mehrere Zeilen?

28. Mai 2013 15:10

Tag zusammen,

mal eine blöde Frage: Kann man eine Codeunit so als Webservice veröffentlichen, dass Sie mehrere Daten-Zeilen zurückgibt? Oder ist das immer auf einen Datensatz beschränkt?

Mit fällt da nämlich nur der Umweg über eine XML-Datei als Weg zum Austausch mehrere Datensätze ein.

Eine Page kann ich nicht verwenden um diese als Webservice zu veröffentlichen, da dieser Webservice Blob's übertragen soll.

Volker

Re: Codeunit-Webservice: Rückgabe mehrere Zeilen?

28. Mai 2013 15:17

die blobs sollen aus nav woanders hin exportiert werden, oder?
Code:
repeat
...
until

Re: Codeunit-Webservice: Rückgabe mehrere Zeilen?

28. Mai 2013 15:34

Solange das lokal ist, ist das ja auch unproblematisch. Ich habe aber einen Webservice-Client, der Blobs aus NAV via Webservice abruft. Da nutzt es mir nix, wenn die CU alle Datensätze durchläuft.

Procedure GetPicFromNAV(No: Code(20), Picture: Bigtext)
Code:
Item.GET(No);
Item.CALCFIELDS(Picture);
IF NOT Item.Picture.HASVALUE THEN EXIT;

Item.Picture.CREATEINSTREAM(IStream);
MemoryStream:=MemoryStream.MemoryStream();
COPYSTREAM(MemoryStream,IStream);
Bytes:=MemoryStream.GetBuffer();
Picture.ADDTEXT(Convert.ToBase64String(Bytes));


Das kann nur immer 1 Blob zurückliefern.

Ich habe hier aber ein Tabelle in der pro Item mehrere Blobs (z. B. Bilder) vorhanden sind. Mit Item.Setrange kann ich da zwar richtig filtern, aber es wird trotzdem immer nur 1 Datensatz und damit nur 1 Blob zurückgeliefert.

So wie ich das sehe, kann ich entweder alles in eine temp. XML-Datei packen und diese mit dem Webservice über die Leitung jagen
oder
den Webservice für jeden Datensatz erneut aufrufen.

Volker