Codeunit 1 ApplicationManagement

Jeder Dynamics NAV Entwickler kennt wohl die Codeunit „ApplicationManagement“ mit der ID 1. In dieser Codeunit fanden wir bislang nützliche Trigger wie zum Beispiel CompanyOpen, GetSystemIndicator, FindPrinter, OnDatabaseInsert, etc. Der Trigger musste dabei eine bestimmte ID besitzen (z. B. hatte der CompanyOpen-Trigger die ID 30) und die korrekte Parametersignatur aufweisen, damit die Plattform den Trigger auch aufruft. Die Codeunit war schon immer Bestandteil der W1-Anwendung von Dynamics NAV bzw. Business Central.

Object Designer und Codeunit 1
Die Abbildung zeigt die Codunit 1 geöffnet über den Object Designer.

Microsoft hat nun angekündigt, mit dem kommenden Oktober 2018 Release von Business Central die Codeunit 1 zu entfernen. Stattdessen wird es eine so genannte „System-Codeunit“ im 2.000.000.000-ID-Bereich geben. Anhand der neuen ID ist schon zu erkennen, dass diese „System-Codeunit“ nicht mehr Bestandteil der W1-Anwendung sein wird. Die neue „System-Codeunit“ wird dann beim Erzeugen einer neuen Datenbank automatisch angelegt – also genau so wie es schon bei den bekannten „System-Tabellen“ abläuft.

Object Designer ohne Codeunit 1
Die Abbildung zeigt den Object Designer in Dynamics 365 Business Central, wo die Codunit 1 fehlt.

Die neue „System-Codeunit“

Die neue „System-Codeunit“ wird keinen Programmcode enthalten sondern nur die Trigger definieren und diese per Event veröffentlichen. Als Entwickler hat man dann die Möglichkeit, diese Events zu abonnieren um eigenen Programmcode zu integrieren. Die W1-Anwendung wird dies genauso machen und diese Events in unterschiedlichen Objekten abonnieren. Der Programmcode aus der Codeunit 1 wird somit von Microsoft auf andere Codeunits und Tabellen verteilt. Die folgende Übersicht zeigt, wo wir in Zukunft den W1-Programmcode finden werden.

  Neu Objektart Neue Objekt-ID Neuer Objektname Neuer Triggername
CompanyOpen Codeunit 40 LogInManagement CompanyOpen
GetSystemIndicator Codeunit 40 LogInManagement GetSystemIndicator
CompanyClose Codeunit 40 LogInManagement CompanyClose
FindPrinter Codeunit 44 ReportManagement GetPrinterName
ApplicationVersion Codeunit 9015 Application System Constants ApplicationVersion
CustomApplicationVersion N/A N/A N/A N/A
ReleaseVersion Codeunit 9015 Application System Constants ReleaseVersion
ApplicationBuild Codeunit 9015 Application System Constants ApplicationBuild
CustomApplicationBuild N/A N/A N/A N/A
ApplicationLanguage Codeunit 43 LanguageManagement ApplicationLanguage
DefaultRoleCenter Codeunit 9170 Conf./Personalization Mgt. DefaultRoleCenterID
MakeDateTimeText Codeunit 41 TextManagement MakeDateTimeText
GetSeparateDateTime Codeunit 41 TextManagement GetSeparateDateTime
MakeDateText Codeunit 41 TextManagement MakeDateText
MakeTimeText Codeunit 41 TextManagement MakeTimeText
MakeText Codeunit 41 TextManagement MakeText
MakeDateTimeFilter Codeunit 41 TextManagement MakeDateTimeFilter
MakeDateFilter Codeunit 41 TextManagement MakeDateFilter
MakeTextFilter Codeunit 41 TextManagement MakeTextFilter
MakeCodeFilter Codeunit 41 TextManagement MakeTextFilter
MakeTimeFilter Codeunit 41 TextManagement MakeTimeFilter
AutoFormatTranslate Codeunit 45 AutoFormatManagement AutoFormatTranslate
ReadRounding Codeunit 45 AutoFormatManagement ReadRounding
CaptionClassTranslate Codeunit 42 CaptionManagement CaptionClassTranslate
GetCueStyle Codeunit 9701 Cue Setup GetCueStyle
SetGlobalLanguage Codeunit 43 LanguageManagement SetGlobalLanguage
ValidateApplicationlLanguage Codeunit 43 LanguageManagement ValidateApplicationLanguage
LookupApplicationlLanguage Codeunit 43 LanguageManagement LookupApplicationLanguage
GetGlobalTableTriggerMask Codeunit 49 GlobalTriggerManagement GetGlobalTableTriggerMask
OnGlobalInsert Codeunit 49 GlobalTriggerManagement OnGlobalInsert
OnGlobalModify Codeunit 49 GlobalTriggerManagement OnGlobalModify
OnGlobalDelete Codeunit 49 GlobalTriggerManagement OnGlobalDelete
OnGlobalRename Codeunit 49 GlobalTriggerManagement OnGlobalRename
GetDatabaseTableTriggerSetup Codeunit 49 GlobalTriggerManagement GetDatabaseTableTriggerSetup
OnDatabaseInsert Codeunit 49 GlobalTriggerManagement OnDatabaseInsert
OnDatabaseModify Codeunit 49 GlobalTriggerManagement OnDatabaseModify
OnDatabaseDelete Codeunit 49 GlobalTriggerManagement OnDatabaseDelete
OnDatabaseRename Codeunit 49 GlobalTriggerManagement OnDatabaseRename
OnDebuggerBreak Codeunit 9500 Debugger Management ProcessOnDebuggerBreak
LaunchDebugger Codeunit 9500 Debugger Management OpenDebugger
OpenSettings Codeunit 9170 Conf./Personalization Mgt. OpenSettings
OpenContactMSSales Codeunit 50 SaaS Log In Management OpenContactMSSales
InvokeExtensionInstallation Codeunit 2501 ExtensionMarketplaceMgmt InvokeExtensionInstallation
CustomizeChart Codeunit 9180 Generic Chart Mgt CustomizeChart
HasCustomLayout Codeunit 44 ReportManagement HasCustomLayout
MergeDocument Codeunit 44 ReportManagement MergeDocument
ReportGetCustomRdlc Codeunit 44 ReportManagement ReportGetCustomRdlc
ReportScheduler Codeunit 44 ReportManagement ScheduleReport
OnBeforeOpenSettings Codeunit 9170 Conf./Personalization Mgt. OnBeforeOpenSettings
OnAfterGetApplicationVersion Codeunit 9015 Application System Constants OnAfterGetApplicationVersion
OnBeforeCompanyOpen Codeunit 40 LogInManagement OnBeforeCompanyOpen
OnAfterCompanyOpen Codeunit 40 LogInManagement OnAfterCompanyOpen
OnRoleCenterOpen Codeunit 9170 Conf./Personalization Mgt. OnRoleCenterOpen
OnBeforeCompanyClose Codeunit 40 LogInManagement OnBeforeCompanyClose
OnAfterCompanyClose Codeunit 40 LogInManagement OnAfterCompanyClose
OnAfterGetSystemIndicator Table 79 Company Information OnAfterGetSystemIndicator
OnAfterFindPrinter Codeunit 44 ReportManagement OnAfterGetPrinterName
OnAfterGetDefaultRoleCenter Codeunit 9170 Conf./Personalization Mgt. OnAfterGetDefaultRoleCenter
OnAfterMakeDateText N/A N/A N/A N/A
OnAfterMakeTimeText N/A N/A N/A N/A
OnAfterMakeText N/A N/A N/A N/A
OnAfterMakeDateTimeFilter Codeunit 41 TextManagement OnAfterMakeDateTimeFilter
OnAfterMakeDateFilter Codeunit 41 TextManagement OnAfterMakeDateFilter
OnAfterMakeTextFilter Codeunit 41 TextManagement OnAfterMakeTextFilter
OnAfterMakeCodeFilter N/A N/A N/A N/A
OnAfterMakeTimeFilter Codeunit 41 TextManagement OnAfterMakeTimeFilter
OnAfterAutoFormatTranslate Codeunit 45 AutoFormatManagement OnAfterAutoFormatTranslate
OnAfterCaptionClassTranslate Codeunit 42 CaptionManagement OnAfterCaptionClassTranslate
OnAfterGetGlobalTableTriggerMask Codeunit 49 GlobalTriggerManagement OnAfterGetGlobalTableTriggerMask
OnAfterOnGlobalInsert Codeunit 49 GlobalTriggerManagement OnAfterOnGlobalInsert
OnAfterOnGlobalModify Codeunit 49 GlobalTriggerManagement OnAfterOnGlobalModify
OnAfterOnGlobalDelete Codeunit 49 GlobalTriggerManagement OnAfterOnGlobalDelete
OnAfterOnGlobalRename Codeunit 49 GlobalTriggerManagement OnAfterOnGlobalRename
OnAfterGetDatabaseTableTriggerSetup Codeunit 49 GlobalTriggerManagement OnAfterGetDatabaseTableTriggerSetup
OnAfterOnDatabaseInsert Codeunit 49 GlobalTriggerManagement OnAfterOnDatabaseInsert
OnAfterOnDatabaseModify Codeunit 49 GlobalTriggerManagement OnAfterOnDatabaseModify
OnAfterOnDatabaseDelete Codeunit 49 GlobalTriggerManagement OnAfterOnDatabaseDelete
OnAfterOnDatabaseRename Codeunit 49 GlobalTriggerManagement OnAfterOnDatabaseRename
OnAfterHasCustomLayout Codeunit 44 ReportManagement OnAfterHasCustomLayout
OnAfterReportGetCustomRdlc Table 9650 Custom Report Layout OnAfterReportGetCustomRdlc
OnBeforeOnDatabaseInsert Codeunit 49 GlobalTriggerManagement OnBeforeOnDatabaseInsert
OnBeforeOnDatabaseModify Codeunit 49 GlobalTriggerManagement OnBeforeOnDatabaseModify
OnBeforeOnDatabaseDelete Codeunit 49 GlobalTriggerManagement OnBeforeOnDatabaseDelete
OnBeforeOnDatabaseRename Codeunit 49 GlobalTriggerManagement OnBeforeOnDatabaseRename
OnEditInExcel Codeunit 6710 ODataUtility OnEditInExcel
OnInstallAppPerDatabase N/A N/A N/A N/A
OnInstallAppPerCompany N/A N/A N/A N/A
OnCheckPreconditionsPerDatabase Codeunit 9900 Data Upgrade Mgt. OnCheckPreconditionsPerDatabase
OnCheckPreconditionsPerCompany Codeunit 9900 Data Upgrade Mgt. RaiseOnCheckPreconditionsPerCompany
OnUpgradePerDatabase Codeunit 9900 Data Upgrade Mgt. OnUpgradePerDatabase
OnUpgradePerCompany Codeunit 9900 Data Upgrade Mgt. OnUpgradePerCompany
OnValidateUpgradePerDatabase Codeunit 9900 Data Upgrade Mgt. OnValidateUpgradePerDatabase
OnValidateUpgradePerCompany Codeunit 9900 Data Upgrade Mgt. OnValidateUpgradePerCompany