Templates: Übersicht des Template Editors

Hallo dProB-Community,

wir möchten euch heute ein Expertentool vorstellen: den Template Editor in dProB. Dieses Werkzeug richtet sich vor allem an erfahrene Nutzer oder solche, die sich gut mit dProB auskennen. Die meisten Anwender werden Templates in der Planung nutzen, was wir in einem anderen Forenbeitrag bereits erklärt haben. In diesem Beitrag konzentrieren wir uns auf eine Übersicht aller Funktionalitäten des Editors.

1. Templates im Content Browser erstellen

Um ein neues Template zu erstellen, navigiert ihr zunächst zum Content Browser. Dort findet ihr den „Create“ Button, mit dem ihr ein neues Template anlegen könnt. Der Content Browser dient auch als zentrale Stelle, um bestehende Templates zu durchsuchen, zu organisieren und zu bearbeiten.

Templates können passend in Ordnerstrukturen organisiert werden, um beispielsweise Hierarchien von unterschiedlich detaillierten Templates zu schaffen. Ein Beispiel hierfür wäre, ein übergeordnetes Template für einen Gleisumbau zu erstellen und die einzelnen Teilschritte, die ebenfalls als Templates abgebildet werden können, in Unterordner zu platzieren. Diese Strukturierung erleichtert die Verwaltung und Wiederverwendung von Templates in unterschiedlichen Projekten.

Ein Template kann ebenfalls editert werden, indem ihr es im Content Browser auswählt, und dann auf den Editieren-Knopf in der oberen Leiste klickt.

2. Der Template Editor – Überblick

Nach dem Erstellen oder Auswählen eines Templates öffnet sich der Template Editor. Dieser ist in mehrere Bereiche unterteilt, die jeweils spezifische Funktionen erfüllen:

  • 1. Viewport: Der zentrale Arbeitsbereich des Editors. Hier wird das Prozessflussdiagramm des Templates als Graph angezeigt. Im Viewport könnt ihr das Verhalten des Templates skripten, indem ihr verschiedene Nodes miteinander verbindet. Diese visuelle Darstellung erleichtert das Verständnis der Abläufe und bietet eine intuitive Möglichkeit, komplexe Prozesse zu definieren.
  • 2. Tabs: Diese ermöglichen euch das schnelle Wechseln zwischen verschiedenen Graphen, die jeweils unterschiedliche Teile der Template-Logik abbilden. Zum Beispiel ist der Simulations-Graph immer vorhanden und beschreibt die Grund-Logik des Templates. Dieser Graph wird ausgeführt, wenn das Template angewendet wird. Weitere Functions können erstellt werden, um spezifische Logik auszulagern. Dies verbessert die Übersichtlichkeit und ermöglicht die Wiederverwendung von Logikbausteinen in verschiedenen Teilen des Templates.
  • 3. Seitenleiste: In der Seitenleiste werden wichtige Informationen und Werkzeuge angezeigt:
    • Functions: Hier werden alle Graphen, wie der Simulations-Graph oder erstelle Functions angezeigt. Ebenso können hier neue Functions erstellt werden.
    • Template Variables: Diese Sektion ermöglicht es euch, den Zustand eures Templates über die Zeit mitzuverfolgen und zu verändern. Ihr könnt zum Beispiel festhalten, in welcher Wiederholungsschleife ihr euch befindet oder den zuletzt geplanten Prozess speichern, um Abhängigkeiten zu erstellen. Neue Variablen können über das Menü hinzugefügt und bestehende bearbeitet werden.
    • Inputs/Outputs: Diese Sektion definiert die Eingaben und Ausgaben eurer Graphen. Im Fall des Simulations-Graphs sind das die Template Inputs die vom Nutzer beim Ausführen des Templates eingegeben werden. Bei Funktionen gibt es analoge Inputs und Outputs, welche jedoch nur für den Template-Editor seblst wichtig sind, und dem Nutzer nie angezeigt werden. Es ist wichtig zu beachten, dass für die Template Inputs spezifische Eingabetypen verfügbar sein können, die sich von denen für Funktionen unterscheiden.
    • Speichern-Knopf: Über diesen Knopf kann das Template gespeichert werden. Falls es noch nicht gespeicherte Änderungen beim Verlassen des Template-Editors gibt, wird man ebenfalls zum Speichern aufgefordert.

3. Verfügbare Nodes

Alle verfügbaren Nodes könnt ihr über einen Rechts-Klick im Viewport anzeigen lassen und auswählen. Wenn ihr eine spezielle Node sucht, tippt nach dem Rechtsklick ein Stichwort ein, die Liste der Nodes wird daraufhin entsprechend gefiltert.
Eine vollständige Liste aller aktuell verfügbaren Nodes findet ihr außerdem unter: Template Editor: Die Nodes im Überblick

001_3-55-4-33_gif

Wenn ihr eine Daten-Verbindung von einem Input oder Output zieht werden euch außerdem nur Nodes vorgeschlagen, welche auch zu dem Daten-Typ passen. So findet ihr noch schneller die richtige Node.

Fehlen euch spzifische Nodes für euer Template? Habt ihr Vorschläge zu Namen, Sortierung oder Bedienung? Lasst es uns gerne hier im Forum oder über den Support wissen!

4. Tipps für die Erstellung von Templates

Wir haben in der Erstellung erster Templates bereits ein paar Erkenntnisse gesammelt, welche wir euch gerne als Tipps mitgeben möchten. Wenn Ihr Erfahrungen macht, teilt diese gerne auch hier im Forum!

  • Template-Konzept: Startet mit einer Analyse, welchen Prozessablauf euer Template später simulieren soll. Überlegt, welche Eingaben vom Template-Anwender nötig sind und welche im Template berechnet werden können.
  • Partitionierung von Templates: Besonders bei komplexen Templates bietet es sich an, diese in Teile zu trennen. Wenn der resultierende Prozess beispielsweise in „Anfahrt“, „Einbau“ und „Abtransport“ logisch geteilt werden kann, könnte es sich anbieten für jeden der Schritte ein eigenes Template zu erstellen. Diese Templates könnt ihr dann als „Sub-Templates“ in einem anderen Template einbinden um größere Abläufe in einem Template zu bündeln.
  • Nutzung von Funktionen: Diese bieten sich besonders an, wenn ein Template-Graph besonders komplex wird, oder ihr wiederkehrende Logik an mehreren Stellen verwendet. Mit gut konzipierten Funktionen werden Templates im Editor einfacher zu organisieren und zu verstehen.
  • Iterationen zur Perfektion: selten ist ein Template nach der ersten Erstellung bereits perfekt. Wir empfehlen mit einer ersten Version zu starten, welche euer konkretes Problem für den Moment löst und passt es wenn nötig mehrfach an bis euer Template perfekt auf euren Use-Case passt.
  • Debugging: Templates enthalten schnell komplexe Logik, dabei schleichen sich einfach Fehler ein. Der beste Weg ein Template zu erproben ist entsprechend, es in einem konkreten Projekt zu testen und wenn nötig auszubessern. In der Zukunft werden wir außerdem eigene Tools bereitstellen, welche euch helfen genau zu verstehen an welcher Stelle in eurem Template eine Berechnung schief geht oder ein Fehler passiert.

Viele Grüße,

Euer dProB-Team