Jump to: navigation, search

Transfer Meta Data between Environments


Revision as of 21:05, 24 July 2023 by NWE (Talk | contribs)

Using Smart Studio, meta data from one UBIK® Environment can be transported into another one. This includes Meta Classes and their Meta Properties, Meta Proxies, Selective Lists and Units.

This is useful when a staging strategy is applied in a project, where every feature is quality assured by first being implemented in a Development (DEV) Environment then integrated with other systems in the Integration (INT) Environment and finally, after testing and acceptance, released to the Productive (PROD) Environment.


[edit]

Considerations

Before transporting a data model, or meta data, between UBIK® Environments, it is important to consider the following:

  • Transporting meta data using SmartStudio is best done in UBIK® 4 and newer, to avoid problems with the Sandbox/Live mode.
  • If you don't just transport only once, but continue developing and want to transfer your changes incrementally, you need a development strategy.
  • While SmartStudio is capable of merging two different situations, it cannot work out the differences between two situations (at least not in version 4). UBIK® also is no version control system (VCS) like Git or SVN and does not support several development branches inherently.
  • It is recommended to use a VCS like Git to develop new features for your customizing, and to use SmartStudio projects to transport them between staging environments.

Development strategy

In any case, a project management or issue tracking system is recommended to organize your project. Further, staging is a best practice for QA. To manage your customizing optimally for collaboration and staging, a version control system (VCS) like Git is strongly recommended. The transport of meta data between staging environments can be done with SmartStudio.

If you don't use a VCS, it is recommended to create one SmartStudio project for every feature and to merge them separately to each staging environment. The reason for this is that you can merge the content of a worksheet into an environment or a project, but it is not possible to work out the difference between two situations and the merging capabilities are also limited to a "the winner takes all" strategy in case of merging conflicts. Merging two projects is also not possible (at the time this article was written).

If you use a VCS like Git, it is recommended to apply the Feature Branch Workflow and use common SmartStudio projects for the same topics. Multiple projects in this case are only necessary to avoid too large projects that would slow down SmartStudio and consume a lot of working memory.

SmartStudio Usage

SmartStudio uses Worksheets and Smart Projects to store your work. Use the Inheritance Graph or the Transport Container to define the models you want to transport. You can use the tools on the left side to add models to a worksheet, via Drag & Drop.

For the transfer of meta data between environment, the following recommendations exist:

  • Always develop in one direction: From DEV to INT to PROD.
  • When transferring a model to another Environment, always perform a Merge.
  • Always check the result of a Merge before saving to the Environment.

See also