Hi
I want to store a Blob value in a xml file.
The xml has to look like that:
..
<file_list>
<file>here is the base64 encoded content of the file</file>
</file_list>
..
The file is stored in a Blob, for example the item picture. The solution should work without to store the file first in a file.
Thx a lot in advance
Thomas
0
Answers
VAR
Item@1000000007 : Record 27;
IStream@1000000004 : InStream;
MemoryStream@1000000003 : DotNet "'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.IO.MemoryStream";
Bytes@1000000001 : DotNet "'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Array";
Convert@1000000000 : DotNet "'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Convert";
BEGIN
//**
// Function to convert a blobfield to a BigText base64 encoded string.
//*
Item.GET(ItemNo);
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));
END;
For NAV2013 I suggest you replace the BigText variable with a normal text one. For 2009 you'll need the BigText.
Thx to you both, it works like a charm.
As a last line, I added to have the value stored in the xml structure.
Thx again and have a nice day
Thomas