Skip to main content

Refactoring Areas

File management

  • OpenFileDialog, SaveFileDialog refactored to use BlobImport, BlobExport functions
  • DownloadToFile to normalize file names (removing the path)
  • CreateClientFile, ClientTempFileName replaced by ServerTempFileName
  • File.Create to store files on the server and download when GUI is allowed
  • Other File Management cases to be refactored are logged with comments

Temp Blob

  • TempBlob records are substituted by the new Temp Blob codeunit
  • Related functions are refactored as well
  • Including assignment, ReadAsText, WriteAsText, etc.

Breaking Changes

These functions are refactored:

  • GetLanguageID
  • GetUserLanguage
  • ApplicationLanguage
  • LookupApplicationLanguage
  • LanguageManagement
  • TextManagement
  • GetLanguageCodeFromLanguageID
  • LookupWindowsLocale
  • GetWindowsLanguageNameFromLanguageID
  • AutoFormatTranslate
  • AutoformatManagement
  • TryGetCultureName
  • CaptionManagement
  • ConvertValueFromBase64
  • ConvertValueToBase64


Where new code is inserted into the triggers it gets refactored from a comment to trigger. Table and Page triggers are included.

//trigger Onlnsert() 
// begin
JobsSetup. Get;
//end ;
// begin
Message('Hello new job!');

The above code will be converted to below:

trigger OnInsert()
Message('Hello new job!');


  1. Events are extracted from objects.
  2. All events are moved to new event subscription codeunits.
  3. Codeunit events are extracted from deltas.
  4. Where possible, closest events are discovered and code is transferred to the base-app events


  1. Options from table fields and variables are extracted
  2. Enums are generated
  3. Options get replaced by the new enums