Don't miss out Virtual Happy Hour today (April 26).

Try our conversational search powered by Generative AI!

Loading...
ARCHIVED This content is retired and no longer maintained. See the latest version here.

Recommended reading 

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

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.

Note: You can modify a meta-model only in Design mode. See the MetaClassManager class section.

The following classes are available in the Mediachase.BusinessFoundation.Data.Modules namespace.

Default modules

The following modules are default: Change Tracking, History and Localization.

Change Tracking

Change Tracking 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 from DataContext to this field when a new meta-object is created.
  • ModifierId. Copies the current user meta-information from DataContext to this field when a meta-object is modified.

To get the module manifest, call the CreateModuleManifest of the ChangeTrackingManager class.

History

History 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 selected field is modified. The [MetaClassName]\_History meta-class has an ObjectId field that has the original primary key value.

  • Call CreateModuleManifest of the HistoryManager class to get the module manifest.
  • Call SetSelectedFields of the HistoryManager class, passing the meta-class, to set the collection of selected fields.
  • Call GetSelectedFields of the HistoryManager class, 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

The Localization module localizes field values.

Do the following to define available languages after installation:

  • Call GetInstalledLanguages of the LocalizationManager class to get installed languages.
  • Call InstallLanguage of the LocalizationManager class passing the culture info Name, to install a new language.
  • Call UninstallLanguage of the LocalizationManager class passing the culture info Name, 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 orginal field to get a value. When you add a new language, the localization module automatically creates new fields.

  • Call GetLocalizableFields of the LocalizationManager to get localizable fields.
  • Call ActivateFieldLocalization of the LocalizationManager, passing the meta-class and meta-field, to activate field localization.
  • Call DeactivateFieldLocalization of the LocalizationManager, passing meta-class and meta-field, to deactivate field localization.

Installing a module

  • Call Install of the ModuleManager class, passing the module manifest and attributes to install a new module.

Activating a module

  • Call Activate of the ModuleManager class, passing the module manifest and meta-class, to activate a module in the meta-class.

Deactivating a module

  • Call Deactivate of the ModuleManager class, passing the module manifest and meta-class, to deactivate a module.

Uninstalling a module

  • Call Uninstall of the ModuleManager class, passing the module manifest, to uninstall a module.
Do you find this information helpful? Please log in to provide feedback.

Last updated: Oct 12, 2015

Recommended reading