metadata-driven modeling with BAML (Board Application Markup Language)

Nico Gerbrand
Nico Gerbrand Employee
Third Anniversary 100 Up Votes 10 Comments Level 100: Foundations of Building in Board
edited June 2023 in Idea Exchange

This feature is inspired by BIML (Business Intelligence Markup Language).

To develop a board-application you don’t need coding skills. That is really great for beginners!

To develop a board-application is mostly to create or alter meta-data. For example create a new entity. Give them a name, group, id length, desc length and so on. In the end it is necessary to create a snapshot and deploy it.

Alternative to manipulate our meta-data direct in board, we could store our metadata in text-, xml-files or databases like postgres. I will explain the efforts of doing this later.

During development are many repeating sequences. Tasks are always solved the same way and only meta-data differs from task to task. That could be very annoying for experienced developers. This is very well known by another group of BI-developers. For creating a new SQL Server Integration Package or Data Staging Area in SQL Server they could use BIML. (BIML) is a domain-specific XML dialect for defining business intelligence assets.

I suggest to create our own “Board Application Markup Language” to develop board applications. At the end is a baml-File just an xml-file. A short example could look like this:

The benefit of xml, it is readable by humans, easy to understand, maintain and use of version-control like git.

Obvious writing xml code manually is tedious and also annoying. To avoid this and speed up the work we use scripts. This is where our previously saved metadata comes into play. Our script reads the metadata and creates the baml-file for us. The script could be written in C# or another language. Extensive programming knowledge is not required here. Only loops and IF-ELSE statements.

How to create a BIML-Script you can see here:

How to work with metadata in BIML:

An advantage of using BAML-scripts is, the developer could include some logic. For example, if an entity is used in cube then add to Quicklayout.

To facilitate the creation of baml-scripts and baml-code, should an Extension be available for Visual Studio Code or another popular IDE. To transfer the changes to the board server the BAML file is compiled first. This creates a snapshot for the database or corresponding capsule which is imported with the ALM.

Example compile a BIML-File in Visual Studio:

Target is to speed up delivery of new applications or extensions and reuse of proven designs.

This feature is for consultants, implementation partners and experienced customers.

16
16 votes

Accepted · Last Updated

Comments