BPMNExtendsions

BPMN-Erweiterungen

Prozessdefinitionen können in die Application-Engine geladen, in der Engine erstellt oder modifiziert und aus der Engine wieder exportiert werden. Hierfür wird als Austauschformat BPML verwendet. BPML ist eine XML-Sprache für den Austausch von BPMN (Business Process Model and Notation, vgl. ​http://www.bpmn.org/).

Das XML-Schema von BPML ist erweiterbar, so dass Anwendungen zusätzliche Informationen zu den im Standard definierten Bestandteilen von BPMN ablegen können. Solche Erweiterungen werden von der Application-Engine genutzt, um TopLogic-spezifische Annotationen zu speichern. BPML-Erweiterungen nutzen das XML-Tag <bpmn:extensionElements> aus dem Namensraum xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL", in welchem XML-Tags aus beliebigen fremden Namensräumen enthalten sein dürfen.

TopLogic nutzt als Namensraum für BPML-Erweiterungen xmlns:tl="http://www.top-logic.com/ns/BPMN/extensions/7.0".

Pool-Erweiterungen

Modell-Typ

Der für einen Pool verwendete Modell-Typ wird über das Tag tl:modelType an das bpmn:participant-Element annotiert:

<bpmn:participant ...>
   <bpmn:extensionElements>
      <tl:modelType value="my.module:MyType" />
   </bpmn:extensionElements>
</bpmn:participant>

Der Wert des value-Attributs enthält den vollqualifizierten Modellnamen des Modell-Typs, der das Datenobjekt eines Pools beschreibt.

Manual-Task-Erweiterungen

Ein Manual-Task beschreibt eine GUI, die dem Nutzer in dem entsprechenden Schritt angeboten wird.

Formular-Annotation

Das Formular, welches in dem beschriebenen Schritt angezeigt wird, ist über das Tag tl:displayDescription an das Element bpmn:manualTask annotiert:

<bpmn:manualTask ...>
   <bpmn:extensionElements>
      <tl:displayDescription>
         <form>
            ...
         </form>
      </tl:displayDescription>
   </bpmn:extensionElements>
</bpmn:manualTask>

Eine Formular-Definition besteht immer aus dem Root-Tag form. Innerhalb dieses Tags kann der folgende Inhalt auftreten:

Eingabe-Feld

Ein Eingabe-Feld wird über das Tag field definiert. Das Atttribut attribute verweist auf den technischen Namen des Attributs des Prozess-Basisobjektes (vom Modell-Typ, der als Pool-Erweiterung angegegeben ist), dessen Inhalt in dem Feld dargestellt bzw. editiert werden soll:

<field attribute="myAttr" visibility="editable"/>

Das Attribut visibility gibt, an wie das Feld dargestellt werden soll. Mögliche Werte sind:

default Das Eingabe-Feld wird so dargestellt, wie im Modell definiert.
editable Es wird ein bearbeitbares Eingabe-Feld dargestellt.
read-only Es wird nur der Wert angezeigt (ohne Bearbeitungsmöglichkeit).
mandatory Es wird ein Eingabe-Feld dargestellt und die Eingabe ist verpflichtend (das Feld darf nicht leer bleiben).

Field-Set

Eine Menge von Eingabe-Felder kann über ein Field-Set gruppiert werden. Die Gruppe hat optional eine Überschrift und weitere Attribute:

<group
   columns="DEFAULT"
   labelPlacement="DEFAULT"
   collapsible="true" 
   initiallyOpened="true" 
   showBorder="true"
   showTitle="true" 
   wholeLine="true"
>
   <label>
      <de>Titel auf Deutsch</de>
      <en>Title in Englisch</en>
   </label>

   <field .../>
   ...
   <field .../>
</group>

Titelanzeige

Das Attribut showTitle gibt an, ob die Formulargruppe mit einem Title dargestellt werden soll.

Ist dies der Fall, wird der internationalisierte Titel der Formular-Gruppe über das geschachtelte Tag label angegeben. Dieses enthält Sub-Tags für alle in der Engine aktivierten Sprachen. Standardmäßig sind das Deutsch (de) und Englisch (en).

Gruppen-Inhalt

Der Inhalt der Formular-Gruppe wird über geschachtelte Tags beschrieben. Beispielsweise sind das eine Menge von Formular-Feldern.

Spalten

Das Attribut columns gibt die Anzahl von maximalen Spalten (1-5) an, die in dieser Formular-Gruppe dargestellt werden. Der Wert DEFAULT bedeutet, dass so viele Spalten angezeigt werden, wie dier Bildschirm Platz bietet.

Label-Ausrichtung

Das Attribut labelPlacement wie Label relativ zu ihrem Eingabe-Feld dargestellt werden. Es sind die folgenden Werte möglich:

DEFAULT Es wird die globale Voreinstellung der Engine verwendet.
ABOVE Das Label wird über dem Eingabefeld dargestellt.
IN_FRONT_OF_INPUT Das Label wird vor dem Eingabefeld dargesetllt, wenn der verfügbare Platz dies zulässt.

Collabierbarkeit

Das Attribut collapsible gibt an, ob die Formular-Gruppe zugeklappt werden kann.

Initialdarstellung

Das Attribut initiallyOpened gibt an, ob die Formular-Gruppe initial geöffnet dargestellt werden soll.

Rahmendarstellung

Das Attribut showBorder gibt an, ob die Formulargruppe mit einem Rahmen dargestellt werden soll. Da konkrete Aussehen des Rahmens gibt das gewählte Theme vor.

Anordnung

Wenn das Attribut wholeLine gleich true ist, wird die Formulargruppe über die gesamte Zeile dargestellt. Wenn der Wert false ist, wird die Gruppe mit anderen Elementen zusammen in einer Zeile dargestellt, wenn genügend Platz verfügbar ist.