Difference between revisions of "HowTo:Provide system definitions with a custom plugin"
m (→Create a new MetaProxy) |
m (→Prerequisites) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
This tutorial explains how to provide any kind of preconfigured {{UBIK}} data (system definitions) using a custom plugin. | This tutorial explains how to provide any kind of preconfigured {{UBIK}} data (system definitions) using a custom plugin. | ||
+ | == General concept == | ||
+ | |||
+ | When rolling out a {{UBIK}} customizing into a (productive) environment, there is always the challenge regarding the transportation of the data model and basic data. | ||
+ | The sustainable solution is to deliver versioned packages of system definitions in plugins, because that allows for easy deployment and upgrade, and for the direct application of state-of-the-art software development strategies for plugin development. | ||
+ | |||
+ | {{UBIK}} plugins are detected when an Environment is initialized, and the user is prompted with a database upgrade if necessary. The technical maintenance of the database is automatic and allows for arbitrary adaptations. | ||
+ | The plugin developer can decide whether to make meta definitions immutable or further customizable by the user. Custom scripts can be executed everytime the Environment is connected or just during an upgrade. | ||
+ | |||
+ | == Prerequisites == | ||
+ | |||
+ | To understand the code, knowledge about the {{UBIK}} ER-model and the plugin injection mechanism is required. | ||
+ | |||
+ | [[Category:How-To|Provide system definitions with a custom plugin]] | ||
+ | [[Category:Module|Provide system definitions with a custom plugin]] | ||
+ | |||
+ | == Instructions == | ||
<!-- DO NOT REMOVE THIS -->{{Template:HowTo/Begin}}<!-- DO NOT REMOVE THIS --> | <!-- DO NOT REMOVE THIS -->{{Template:HowTo/Begin}}<!-- DO NOT REMOVE THIS --> | ||
Line 10: | Line 26: | ||
The Plugin hosts a SystemDefinitionProvider, which in turn gives access to a set of versioned SystemDefinitions. The latter can contain any kind of {{UBIK}} data like MetaClasses, MetaProperties, instances of any type and scripts to execute when the package is installed or initialized. | The Plugin hosts a SystemDefinitionProvider, which in turn gives access to a set of versioned SystemDefinitions. The latter can contain any kind of {{UBIK}} data like MetaClasses, MetaProperties, instances of any type and scripts to execute when the package is installed or initialized. | ||
− | [[File: | + | [[File:Systemdefinitions2.drawio.png]] |
= Create a new plugin = | = Create a new plugin = | ||
Line 561: | Line 577: | ||
= Create a new MetaProxy = | = Create a new MetaProxy = | ||
+ | |||
+ | MetaProxies are managed very similarly to MetaClasses, but the MetaProxyProperties are slightly more complex because they require additional information like the UIDs for the import and export versions of itself, the target property in {{UBIK}}, etc. | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%; overflow:auto;"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:100%; overflow:auto;"> | ||
Line 707: | Line 725: | ||
* [[HowTo:Create_UBIK_Module|Create your own module]] | * [[HowTo:Create_UBIK_Module|Create your own module]] | ||
+ | |||
+ | [[Category:How-To]] | ||
+ | [[Category:Module]] | ||
[[Category:How-To|Provide system definitions with a custom plugin]] | [[Category:How-To|Provide system definitions with a custom plugin]] | ||
[[Category:Module|Provide system definitions with a custom plugin]] | [[Category:Module|Provide system definitions with a custom plugin]] |
Latest revision as of 15:12, 25 November 2024
This tutorial explains how to provide any kind of preconfigured UBIK® data (system definitions) using a custom plugin.
General concept
When rolling out a UBIK® customizing into a (productive) environment, there is always the challenge regarding the transportation of the data model and basic data. The sustainable solution is to deliver versioned packages of system definitions in plugins, because that allows for easy deployment and upgrade, and for the direct application of state-of-the-art software development strategies for plugin development.
UBIK® plugins are detected when an Environment is initialized, and the user is prompted with a database upgrade if necessary. The technical maintenance of the database is automatic and allows for arbitrary adaptations. The plugin developer can decide whether to make meta definitions immutable or further customizable by the user. Custom scripts can be executed everytime the Environment is connected or just during an upgrade.
Prerequisites
To understand the code, knowledge about the UBIK® ER-model and the plugin injection mechanism is required.