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.
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.
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 |