Extend meta-models
Describes how to extend meta-models in Business Foundation (BF).
You can extend meta-models through the use of Modules, which is part of the meta-model that provides the main entry point in the client for extensibility objects. Install modules in the system and activate them from the meta-class.
A module consists of the following:
- A module manifest – Defines information about the module and references to module the configuration.
- A module configuration – The .NET class that implemented the
IModuleConfiguratorinterface.
The Module Manager loads and calls the Module Configurator methods when a module is activated, deactivated, installed, or uninstalled. Each module should implement the Module Configurator.
NoteYou can modify a meta-model only in Design mode. See the
MetaClassManagerclass section.
Classes in this topic are available in the following namespace:
Mediachase.BusinessFoundation.Data.Modules
Change Tracking default module
The Change Tracking module adds new fields to a meta-class and registers the user and the date and time of modification. After activation, the Change Tracking module adds these meta-fields:
Created– Updates this field when a new meta-object is created.Modified– Updates this field when a meta-object is modified.CreatorId– Copies the current user meta-information fromDataContextto this field when a new meta-object is created.ModifierId– Copies the current user meta-information fromDataContextto this field when a meta-object is modified.
To get the module manifest, call the CreateModuleManifest of the ChangeTrackingManager class.
History default module
The History module saves meta-object modifications to the history meta-class. After activation, the History module creates a meta-class named [MetaClassName]_History, and creates a copy of the entity object if the selected field is modified. The [MetaClassName]_History meta-class has an ObjectId field that has the original primary key value.
- Call
CreateModuleManifestof theHistoryManagerclass to get the module manifest. - Call
SetSelectedFieldsof theHistoryManagerclass, passing the meta-class, to set the collection of selected fields. - Call
GetSelectedFieldsof theHistoryManagerclass, passing the meta-class, to get the collection of selected fields.
You can read the history of the entity object from the [MetaClassName]_History meta-class.
Localization default module
The Localization module localizes field values.
Do the following to define available languages after installation:
- Call
GetInstalledLanguagesof theLocalizationManagerclass to get installed languages. - Call
InstallLanguageof theLocalizationManagerclass passing the culture infoName, to install a new language. - Call
UninstallLanguageof theLocalizationManagerclass passing the culture infoName, to uninstall a language.
After activation, define the localizable field. The localization module creates a new field named [FieldName]_[ThreeLetterWindowsLanguageName], which reads or saves localizable values. If the value is null, you should use the original field to get a value. When you add a new language, the localization module automatically creates new fields.
- Call
GetLocalizableFieldsof theLocalizationManagerto get localizable fields. - Call
ActivateFieldLocalizationof theLocalizationManager, passing the meta-class and meta-field, to activate field localization. - Call
DeactivateFieldLocalizationof theLocalizationManager, passing meta-class and meta-field, to deactivate field localization.
Install a module
To install a new module, call Install of the ModuleManager class, passing the module manifest and attributes.
Activate a module
To activate a module in the meta-class, call Activate of the ModuleManager class, passing the module manifest and meta-class.
Deactivate a module
To deactivate a module, call Deactivate of the ModuleManager class, passing the module manifest and meta-class.
Uninstall a module
To uninstall a module, call Uninstall of the ModuleManager class, passing the module manifest.
Updated 27 days ago
