Anwendungsframework
Mit dem Anwendungsframework können sowohl einfache Masken als auch komplexe Anwendungen / Pakete im be Portal erstellt werden. Die Grundlage ist dabei immer ein Package.
Im Package werden folgende Dinge definiert:
pages
Definition von Elementen einer darstellbaren Website - als YAML Datei
widgets
Definition von Widgets, die auf dem Dashboard des be Portals angezeigt werden können
entities
Definition von Entitäten, die technisch als PostgreSQL-View oder -Tabelle umgesetzt werden
menus
Definition von Menüeintragen in der globalen Navigation
commands
Definition von Commands als Elemente, die Funktionen der Userinteraktion kapseln. Commands sind vielseitig einsetzbar, um z.B. auf Pages zu navigieren, Codeblock im beas auszuführen oder JavaScript im Frontend.
customControls
Definition von CustomControls - Individuelle Oberflächen-Controls auf Basis von HTML/JS/CSS
roles
Definition von Rollen für die Differenzierung der Berechtigungssteuerung innerhalb dieses Packages
beasServices
Liste der beasServices die Bestandteil dieses Packages sind
dependencies
Liste an Packages inklusive der benötigten (Minimal-)Version, die für das Package notwendig sind
Ist mindestens ein benötigtes Package ungültig oder wird eine andere Version benötigt, wird das Package selbst ungültig
Ein wichtiges Werkzeug bei der Entwicklung von diesen Paketen ist VS Code. VS Code bietet Unterstützung bei der Entwicklung von Packages, Pages und Codeblock Programmen.
Objekte können in der der package datei unter
objects:
entities: ...
styles: ...
...
definiert werden, oder in geplittet in separaten Dateien mit Namensschema .objects/\w+.<OBJECT>.yaml
in diesem Fall muss für die Objecte in der package yaml
objects:
<OBJECT>: $include
...
gesetzt werden. In diesem Fall werden dort alle Objecte, die obiges Namensschema erfüllen angehängt. Möchte man verschiedene Objecte gebündelt in Dateien ablege, so kann dies durch .objects/\w+.objects.yaml
Dateien erreicht werden. Diese müssen dabei die Form haben
objects:
<OBJECT>:
- ...
- ...
<OBJECT2>:
....
haben und sollten in der Package Datei ebenfalls via
objects:
objects: $include
inkludiert werden.