2. August 2018 13:28
NAV 2017 führte den neuen Datentyp MediaSet zum Speichern von Bildern ein, was u.a. in Tabelle 27 Item umgestellt worden ist.
Da ich nun selber so ein Bild-Feld von BLOB zu MediaSet umstellen soll, und hierzu ein Upgrade Toolkit bereitstellen will, hat es mich geärgert, beim Googeln keinen Hinweis zu finden, wie man speziell hierfür denn nun ein Upgrade Toolkit schreibt.
Also anbei eine kleine Doku, wie es denn der Standard im UPGTK für NAV 2017 gemacht:
[TableSyncSetup]
- Code:
DataUpgradeMgt.SetTableSyncSetup(DATABASE::Item,DATABASE::UPGItem,TableSynchSetup.Mode::Copy);
[UpgradePerCompany]
UpdateItemPicture
- Code:
IF NOT Item.FINDSET THEN
EXIT;
UPGItem.SETAUTOCALCFIELDS(Picture);
REPEAT
UPGItem.GET(Item."No.");
MoveBlobToMediaSet(UPGItem,Item);
UNTIL Item.NEXT = 0;
MoveBlobToMediaSet
- Code:
LOCAL MoveBlobToMediaSet(VAR UPGItem : Record Table104092;VAR Item : Record Item)
IF NOT UPGItem.Picture.HASVALUE THEN
EXIT;
UPGItem.Picture.CREATEINSTREAM(PictureInStream);
CLEAR(Item.Picture);
Item.Picture.IMPORTSTREAM(PictureInStream,'');
Item.MODIFY;
Lokale Variable:
PictureInStream: DataType = InStream
Also ganz einfach