Schwebeklammer

Symbol/Konstruktpalette:
Menü: Konstrukte→Schwebeklammer→Beginn / Rollback / Ende

Erläuterung: Was ist eine "Schwebe", und was ist eine "Schwebeklammer"?

Die Schwebeklammer steht nur in Geschäftsvorfall-Steuerungen zur Verfügung.

Diese Symbole stehen auf den Tasten der Werkzeugpalette und werden eingesetzt, wenn Sie die Schwebe-Konstrukte in das Steuerungsteil einfügen.

Schweben können geschachtelt werden, d.h. es können zu einem Zeitpunkt zwei oder mehr Schweben offen sein. Darum ist es wichtig, dass jedes in einer Schwebe zu verwaltende Geschäftsobjekt durch einen eindeutigen Namen identifiziert wird. Wenn innerhalb einer Iteration (Schleife) eine Schwebe geöffnet wird, gilt folgendes:

  • Jedes Mal, wenn die Iteration durchlaufen wird, wird eine Ausprägung (oder „Instanz“) des in der Schleife bearbeiteten Geschäftsobjekts schwebend.
  • Wenn die Schwebe auch innerhalb der Iteration abgeschlossen oder zurückgesetzt wird, ist immer nur eine Ausprägung des Geschäftsobjekts schwebend.
  • Wenn die Schwebe für dieses Geschäftsobjekt aber außerhalb der Iteration abgeschlossen oder zurückgesetzt wird, so wird bei jedem Schleifendurchlauf eine neue Ausprägung des Geschäftsobjekts schwebend. Bei Schleifenende können also so viele Ausprägungen des Geschäftsobjekts schwebend sein, wie Schleifendurchläufe stattfanden.
  • Bei dem Abschluss der Schwebe für dieses Geschäftsobjekt außerhalb der Iteration werden alle Ausprägungen des Geschäftsobjekts bestandswirksam. Bei Zurücksetzen der Schwebe außerhalb der Iteration werden alle Ausprägungen des Geschäftsobjekts vernichtet.

Sie müssen selbst dafür sorgen, daß die Schwebeklammer sinnvoll eingesetzt wird: ControlEdge überprüft nicht, ob eine offene Schwebeklammer auch wieder geschlossen wird. ControlEdge überprüft auch nicht, ob bei einem ABBRUCH oder SCHWEBE ENDE tatsächlich eine Schwebeklammer offen ist. Solche Fehler werden erst bei der Kompilierung oder gar zur Laufzeit erkennbar.

Schwebe öffnen

Doppelklicken Sie auf das Symbol für Schwebe öffnen, um festzulegen, welche Objekte während der Schwebe aufbewahrt werden sollen, und unter welchem Namen das Geschäftsobjekt, dass von diesen Datenobjekten gebildet wird, geführt werden soll.

In der Liste „Verbundene Objekte“ markieren Sie diejenigen Objekte, deren Daten während der Schwebe aufbewahrt werden müssen (benutzen Sie die Umschalt- und Strg-Tasten, um eine Gruppe von Objekten oder mehrere Einzelobjekte zu markieren):

  • Von Objekten, die nicht markiert sind, wird im Falle einer Unterbrechung während der Schwebe nur eine Referenz aufbewahrt. Wenn die Daten nach der Unterbrechung wieder benötigt werden, werden sie aufgrund der Referenz neu von der Datenbank gelesen.
  • Von Objekten, die markiert sind, wird der Inhalt im Falle einer Unterbrechung während der Schwebe aufbewahrt und bei Fortsetzung des Arbeitsgangs wieder zur Verfügung gestellt.

Schwebe schließen: Commit

Beim Abschließen einer Schwebe (Commit) geben Sie an, für welches Geschäftsobjekt die Schwebe endet. Dieses Geschäftsobjekt wird dann „bestandswirksam“.

Bei geschachtelten Schweben können Sie mit Schwebe Ende alle offenen Schweben schließen und die betreffenden Geschäftsobjekte bestandswirksam machen, indem Sie das Feld „Alle offenen Schweben abschließen“ ankreuzen.

Schwebe abbrechen: Rollback

Wenn eine Schwebe abgebrochen werden soll, bewirken Sie dies mit dem Konstrukt Schwebe Rollback. Dabei werden alle unter dieser Geschäftsobjekt-Bezeichnung aufbewahrten Dateninhalte vernichtet.

Bei geschachtelten Schweben können Sie mit einem Schwebe Rollback alle offenen Schweben zurücksetzen und die betreffenden Geschäftsobjekte vernichten, indem Sie das Feld „Alle offenen Schweben zurücksetzen“ ankreuzen.

Was ist eine Schwebe, und was ist eine Schwebeklammer

Gelegentlich kann ein Arbeitsablauf der aus irgendeinem Grund nicht zu Ende geführt werden, z.B. weil eine Rückfrage nicht sofort durchgeführt werden kann, oder weil das Eintreffen eines unterschriebenen Formulars abgewartet werden muss. Von einem solchen Arbeitsablauf sagt man dann, dass er sich „in der Schwebe“ befindet. Oft findet man dafür auch den Ausdruck „Pendenz“ oder das englische Wort „pending“, also etwas, das „(in der Luft) hängend“ oder eben „schwebend“ ist. Eine solche Unterbrechung kann implizit stattfinden, weil z.B. ein Arbeitsgang attributiert ist mit „In den Postkorb stellen“, oder explizit durch ein Konstrukt Unterbrechung.

Wenn ein Arbeitsablauf so unterbrochen wird, werden in der Regel von Datenobjekten nur Referenzen aufbewahrt. Wenn zum Beispiel in einem Geschäftsvorfall Name und Anschrift eines Kunden verwendet wurden, wird nur die Information aufbewahrt, um welche Kundendaten es ging, nicht jedoch die Daten selbst.

Wenn nun aber diese Daten in einem vorherigen Arbeitsschritt bereits verändert wurden, genügt dies nicht: in dem Fall müssen die geänderten Daten selbst, und nicht nur die Referenz auf den Datenbanksatz, aufbewahrt werden.

Um dies zu erreichen, definieren Sie eine sogenannte „Schwebeklammer“. Sie markieren damit den Anfang und des Ende des Teil-Ablaufs, für den im Falle einer Unterbrechung bestimmte Daten aufbewahrt werden sollen. Die Schwebeklammer bewirkt, dass alle Dateninhalte, die aufbewahrt werden müssen, zwischengespeichert werden. Die Gruppe von Datenobjekten, die von einer solchen Schwebeklammer erfasst wird, bezeichnet man als „Geschäftsobjekt“.

Technisch wird dies so gelöst, dass für jedes aufbewahrte Datenobjekt eine Kopie des Datensatzes in der Datenbank angelegt wird. Diese Kopie ist aber nicht bestandswirksam, d.h. wenn jemand in einem anderen Geschäftsvorfall sich den Datensatz ansieht, bekommt er in dem Schwebe-Satz vorgenommene Änderungen nicht zu sehen, sondern er greift auf den alten, noch bestandswirksamen Datensatz zu. Der neue Datensatz wird erst dann bestandswirksam, wenn die Schwebeklammer geschlossen wird. Sobald ein geänderter Datensatz bestandswirksam wird, werden die in diesem Datensatz vorgenommen Änderungen auch in allen noch nicht bestandswirksamen Kopien des Datensatzes nachgeführt, sofern solche vorhanden sind.

Auf diese Weise können verschiedene Geschäftsvorfälle einen Datensatz bearbeiten und auch bei längeren Unterbrechungen vermeiden, dass Änderungen verloren gehen oder sie sich gegenseitig ihre Änderungen überschreiben.

cedge:edit:schwebe · Zuletzt geändert: 08.11.2019 10:38

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum