Die Abbildung zeigt alle vier Typen von Ereignissen.
Für diese Ereignisse werden grundsätzlich folgende Elemente in der BPMN-Datei generiert:
Subtypen der Objekte vom Typ Event werden über ein spezifisches Element eventDefinition definiert. Für jedes Objekt vom Typ Message Event wird ein Element messageEventDefinition generiert. In ARIS werden keine verbundenen Nachrichten verwendet, daher wird eine leere Nachricht generiert.
Für Objekte vom Typ Timer Event wird ein Element timerEventDefinition generiert, das eins der möglichen untergeordneten Element timeDate, timeDuration oder timeCycle enthält.
Es kann eine Zeitdauer festgelegt werden, die verstreichen soll, bis das Objekt vom Typ Timer Event startet. Dies generiert ein Sub-Element innerhalb des Elements timerEventDefinition. Im Beispiel sind das 20 Tage.
Die dritte Option definiert einen Zeitzyklus, ein sich wiederholendes Intervall. Im Beispiel sind das 10 Stunden.
Für ein Objekt vom Typ Escalation Event wird ein Element vom Typ escalationEventDefinition generiert.
Für ein Objekt vom Typ Compensation Event wird ein Element vom Typ compensateEventDefinition generiert.
Für ein Objekt vom Typ Conditional Event wird ein Element vom Typ conditionalEventDefinition mit einem untergeordneten Element generiert, das die Bedingung enthält. Dieses Element wird nur generiert, wenn in ARIS eine Bedingung definiert ist.
Für Objekte vom Typ Link Event wird ein Element linkEventDefinition generiert. In ARIS werden Ausprägungskopien derselben Objektdefinition verwendet, um die Beziehung zwischen zwei verlinkten Ereignissen darzustellen. Quell- und Zielelement können daher im Element linkDefinition nicht angelegt werden.
Für ein Objekt vom Typ Signal Event wird ein Element signalEventDefinition generiert.
Für Objekte vom Typ Terminate Event wird ein Element terminateEventDefinition generiert.
In ARIS können multiple Ereignis-Definitionen als Symbol hinzugefügt werden. Da diese Ereignisse aber keine Beschreibung aller zu berücksichtigenden Ereignisse enthalten, werden sie von der BPMN2-Serialisierung ignoriert.
Für ein Objekt vom Typ Error Event wird ein Element errorEventDefinition generiert. Da ARIS die Fehlerreferenz nicht berücksichtigt, ist diese Referenz in der BPMN-Datei nicht vorhanden.
Objekte vom Typ Cancel event werden bei Transaktions-Subprozessen verwende und können als Objekt vom Typ Intermediate boundary event oder End event, das in einen Task eingebettet ist, modelliert sein.
Handelt es sich um ein Objekt vom Typ Boundary event, wird ein Element boundaryEvent generiert, das eine Referenz auf die Transaktion besitzt. Handelt es sich um ein eingebettetes End Event, wird ein untergeordnetes Element endEvent innerhalb des Transaktions-Elements generiert.
Die Abbildung zeigt alle Kombination von Objekten vom Typ Boundary event.
Bei der Serialisierung werden für alle Arten von Objekten vom Typ Boundary event ein Element boundaryEvent generiert. Dieses Element besitzt ein Attribut attachedToRef, das die Referenz zu dem Objekt beinhaltet, auf dessen Rand es platziert wurde. Die Elemente vom Typ eventDefinition werden wir vorher beschrieben generiert.
Objekte vom Typ Event, die auf einem Element vom Typ Subprocess positioniert wurden, steuern dieses Objekt. Die Abbildung zeigt alle möglichen Kombination von Ereignistypen und Objekten vom Typ Event Subprocess.
Das Element Event wird in das zugehörige Element subProcess eingebettet. Das Element subProcess enthält ein Attribut triggeredByEvent, das den Wert true besitzt. Dieses Attribut ist nur verfügbar, wenn ein Ereignis in einen Subprozess eingebettet ist. Ist das Ereignis vom Typ Non-Interrupting, besitzt das Element Event ein Attribut isInterrupting mit dem Wert false.
Die Abbildung zeigt alle einfachen Tasks.
Jede dieser Objekte vom Typ Task generiert ein Element Task vom jeweiligen Typ in der BPMN-Datei.
Die Abbildung zeigt ein Objekt vom Typ Call Activity, dem ein globaler Prozess hinterlegt ist.
Die folgende Abbildung zeigt den globalen, aufgerufenen Prozess.
Für beide Prozesse wird beim Export in eine BPMN-Datei ein Element vom Typ process auf dergleichen Ebene generiert. Das erste Element enthält ein Element Call Activity mit der Referenz auf den aufgerufenen, globalen Prozess. Enthält der aufgerufene Prozess mehr als einen Pool, wird der erste Pool (oberer linker Pool) als der aufgerufene Prozess angenommen.
Ein globales Objekt vom Typ Task kann von einem Objekt vom Typ Call Activity aufgerufen werden. Die Abbildung zeigt die möglichen globalen Objekte vom Typ Task.
Beim Exportieren in eine BPMN-Datei wird ein Element vom Typ globalTask des jeweiligen Typs generiert. Die folgenden Elemente sind möglich: globalUserTask, globalTask, globalBusinessTask, globalManualTask und globalScriptTask.
Diese Elemente werden vom zugehörigen Objekt vom Typ Call Activity aufgerufen.
Für Objekte vom Typ Loop type werden beim Export in eine BPMN-Datei Elemente des jeweiligen Loop Types (standardLoopCharacteristic oder multiInstanceLoopCharacteristic) generiert:
Ist ein Objekt vom Typ Task als Compensation gekennzeichnet, wird dies in der BPMN-Datei in einem Attribut realisiert.
Die Abbildung zeigt alle möglichen Gateways.
Beim Export wird für jedes Objekt vom Typ Gateway ein entsprechendes Element in der BPMN-Datei generiert.
Die Abbildung zeigt einen einfachen Sequence flow, der auf einem Startereignis und einem Task besteht.
Im Flusselement mit der ausgehenden Kante wird ein untergeordnetes Element vom Typ outgoing generiert. Im Zielelement wird ein untergeordnetes Element vom Typ incoming generiert. Beide Elemente referenzieren dasselbe Element von Typ sequenceFlow, das ein Attribut sourceRef und ein Attribut targetRef besitzt, in denen das jeweilige Flusselement referenziert wird. Die ID des Elements vom Typ sequenceFlow setzt sich aus der Zeichenfolge FLOW_ zusammen, dem die GUID der Kante angehängt wird.
Ein Element von Typ sequenceFlow kann einer Bedingung enthalten oder als Standard-Flusselement gekennzeichnet sein. Es können hier mehrere Elemente vom Typ outgoing vorhanden sein. Der Sequence Flow in der Abbildung besitzt drei ausgehenden Kanten. Einer der Flüsse ist als Standardfluss ausgezeichnet.
Im Element exclusiveGateway besitzt das Attribut default als Wert die Referenz zu der Standardkante. Bei den bedingten Flüssen wird ein untergeordnetes Element conditionExpression generiert, das den Text der Bedingung enthält.
ARIS unterstützt keine formalen Bedingungen.
In ARIS müssen Objekte vom Typ Text annotation nicht in einen Pool oder einen Subprozess eingebettet sein. Da sie in einem Container-Element eingebettet sein müssen, werden sie beim Export in eine BPMN-Datei in dasselbe Element vom Typ flowContainerElement eingebettet, in dem das zugehörige Element vom Typ flowElement eingebettet ist.
Die ID des Elements textAnnotation setzt sich aus der Zeichenfolge FLOWNODE_ und der externen GUID des Objekts vom Typ Text Annotation zusammen. Die ID des zugehörigen Flusselements setzt sich aus der Zeichenfolge FLOW_ und der GUID der Kante zusammen. Das Attribut souceRef referenziert das Element textAnnotation und das Attribut targetRef das Element flowElement.
Gruppen werden immer als untergeordnete Elemente in das Element eingebettet, dass das BPMN-Diagramm referenziert. Ist eine Gruppe in einem separat modellierten Subprozess enthalten, wird beim Export das entsprechende Element unterhalb des Elements generiert, das den Subprozess repräsentiert.
Die ID setzt sich aus der Zeichenfolge FLOW_ und der GUID der Gruppe zusammen. Ein oberstes Element category wird generiert, dessen ID sich aus der Zeichenfolge CAT und der GUID des BPMN-Diagramms zusammensetzt. Unterhalb dieses Elements wird ein Element categoryValue generiert, dessen ID sich aus der Zeichenfolge CATV und der GUID der Gruppe zusammensetzt.
Das Gruppenelement referenziert dieses Element category über ein Attribut categoryValueRef. Jedes Flusselement, das in dieser Gruppe enthalten ist, referenziert dieses Element category über ein untergeordnetes Element categoryValueRef.
Verbindungen von einem Objekt vom Typ Data object zu einer Ausprägung eines Flusselements wie einem Task oder einem Event sind nur sinnvoll, wenn auf das Flusselement zugegriffen werden kann.
ARIS erlaubt das Ziehen solcher Kanten auch über Poolgrenzen hinaus, was die BPMN 2.0-Spezifikation nicht erlaubt. Solche Datenobjekte greifen also auf nicht erreichbare Flusselemente zu.
Der Semantikcheck, der vor dem Exportieren eines BPMN-Diagramms in eine BPMN-Datei ausgeführt wird, gibt in diesem Fall einen Fehler aus. Sie können ein zu exportierendes BPMN-Diagramm auch vor dem Export gezielt validieren.
Für jedes Objekt vom Typ Data Object wird in der BPMN-Datei ein Element dataObject generiert.
Unterhalb des Elements itemDefinition werden die Beschreibungen der Datenstruktur hinzugefügt. Alle Elemente vom Typ dataObject, die für dasselbe ARIS-Datenobjekt generiert werden, besitzen dieselbe Struktur. Sie referenzieren alle dasselbe Element itemDefinition. Die ID dieses Elements setzt sich aus der Zeichenfolge ITEM_ und der GUID des ARIS-Datenobjekts zusammen.
Der Container für das Element dataObject und das zugehörige Element dataObjectReference können in unterschiedlichen Container liegen. Das Element dataObject wird bei einem Prozess-Kontext im den obersten Container generiert. Die ID des Elements dataobject setzt sich aus der Zeichenfolge dataobject, der GUID des Containerobjekts und der GUID des Datenobjekts zusammen.
Das Element dataObjectReference repräsentiert dagegen eine konkrete Objektausprägung und wird unterhalb des Elements generiert, das dem Container im BPMN-Diagramm entspricht. Die ID setzt sich aus der Zeichenfolge FLOWNODE_ und der GUID der Ausprägung des Datenobjekts zusammen. Jedes Element dataobjectReference referenziert das zugehörige Element dataObject im selben Prozess- oder Subprozess-Kontext.
In der BPMN-Datei werden abhängig von der Kantenrichtung die Elemente dataInput und dataOutput für jedes Objekt vom Typ Data object generiert. Die Ein- und Ausgabedaten werden unterhalb eines Elements ioSpezification generiert. Die ID eines solchen Elements setzt sich aus der Zeichenfolge FLOWNODE_ und der GUID des ARIS-Objekts zusammen.
Bei Objekten vom Typ dataInput wird zusätzlich ein untergeordnetes Element inputSet generiert, das ein Element dataInputRefs enthält, das wiederum das Element dataInput referenziert.
Bei Objekten vom Typ dataOutput wird zusätzlich ein untergeordnetes Element inputSet generiert, das ein Element dataOutputRefs enthält, das wiederum das Element dataOutputreferenziert.
Die Kanten von Datenobjekten zu Ereignissen werden bei der BPMN-Serialisierung anders behandelt als Kanten zu Objekten vom Typ Activity.
Kanten zu Ereignissen
Ist ein Objekt vom Typ Data output mit einem Startereignis verbunden, wird in der BPMN-Datei unterhalb des Elements startEvent die Elemente dataOutput, dataOutputAssociation und dataOutputSet generiert.
Die ID des Elements dataOutput setzt sich aus der Zeichenfolge DATA_OUTPUT_ und der GUID des Objekts vom Typ Data Output zusammen. Wird im BPMN-Diagramm das Symbol Collection für das Objekt verwendet, wird der Wert des Attributs isCollection auf true gesetzt, andernfalls auf false.
Das Attribut itemSubjectRef referenziert das oberste Element itemDefinition, das für jedes Datenobjekt angelegt wird. Dessen ID setzt sich aus der Zeichenfolge ITEM_ und der GUID des Datenobjekts zusammen. Das Element dataOutputSet enthält ein Element dataoutputRefs, das das Element dataOutput referenziert.
Im Element dataOutputAssociation werden die untergeordneten Elemente sourceRef und targetRef generiert. Das erste referenziert das Element dataInput und das zweite das Element dataOutput des Prozesses.
Da das Endereignis mit einem Element vom Typ Data input verbunden ist, werden die untergeordneten Elemente dataInput, dataInputAssociation und dataInputSet unterhalb des Elements endEvent generiert. Die Attribute und IDs werden analog zu denen für das Startereignis generiert.
Kanten zu Objekten vom Typ 'Activity'
Besitzt ein Objekt vom Typ User Task eine eingehende und eine ausgehende Kante zu zwei Objekten vom Typ Data output, wird beim Export in eine BPMN-Datei unterhalb eines Elements userTask ein Element ioSpezification generiert.
Für die eingehende Kante wird ein Element dataInput und für die ausgehende Kante ein Element dataOutput generiert. Die jeweilige ID setzt sich entweder aus der Zeichenfolge DATA_INPUT_ oder DATA_OUTPUT_ und der GUID des zugehörigen Datenobjekt zusammen. Dahinter wird die Zeichenfolge OF gefolgt von der GUID des Objekts vom Typ User Task angehängt.
Die Elemente inputSet und outputSet enthalten wie bei Ereignissen die Elemente dataInputRefs oder dataOutputRefs, die die Daten referenzieren.
Die Elemente dataInputAssociation und dataOutputAssociation verbinden die Elemente dataInput und dataOutput für das Objekt vom Typ User Task mit dem Element dataOutput für den Prozess.