Upgrade Toolkit für BLOB zu MediaSet

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 ;-)