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.