Transaktion öffnen

Startet eine Transaktion; folgende geänderte Datensätze werden in der Transaktion gehalten, bis ein Scriptschritt „Transaktion bestätigen / rückgängig“ ausgeführt wird.

Hinweis  Die Transaktionen werden innerhalb des Herkunftsfensters abgewickelt. Aktionen, die in anderen Fenstern als dem Fenster der Ursprungstransaktion ausgeführt werden, werden automatisch außerhalb bestehender Transaktionen bestätigt.

Optionen 

  • Automatische Eingabeoptionen überspringen überschreibt alle für die automatische Dateneingabe eingestellten Feldoptionen. Wenn diese Option nicht ausgewählt ist, werden die Optionen für die automatische Eingabe in Felder für alle neuen oder veränderten Datensätze erst dann ausgeführt, wenn der Scriptschritt „Transaktion bestätigen“ erreicht ist. Weitere Informationen finden Sie unter Definieren von automatischer Dateneingabe.

  • Dateneingabeüberprüfung unterdrücken übergeht alle Dateneingabeüberprüfungen, die für Felder festgelegt sind, und bestätigt den Datensatz. Diese Option überspringt nur die Überprüfung für Felder mit der Option Nur bei der Dateneingabe im Dialogfeld „Optionen für Feld“ – Felder mit der Option Immer überprüfen werden immer noch überprüft, auch wenn die Option Dateneingabeüberprüfung überspringen ausgewählt ist. Weitere Informationen finden Sie unter Definieren der Feldüberprüfung.

  • ESS-Sperrkonflikte überschreiben ermöglicht Clients von ODBC-Datenquellen, das Schreiben von Änderungen zu erzwingen, wenn optimistisches Sperren den Schreibvorgang verhindern würde. ODBC-Datenquellen werden auch als externe SQL-Quellen (ESS) bezeichnet.

Kompatibilität 

Produkt Unterstützt
FileMaker Pro Ja
FileMaker Go Ja
FileMaker WebDirect Ja
FileMaker Server Ja
FileMaker Cloud Ja
FileMaker Data API Ja
Custom Web Publishing Ja

Ursprung in Version 

19.6.1

Beschreibung 

Eine Transaktion besteht aus Änderungen an einem oder mehreren Datensätzen im aktuellen Fenster. Änderungen in einer Transaktion können mehrere Tabellen in mehreren Datenbankdateien betreffen. Alle Änderungen in einer Transaktion werden zusammen übertragen oder, falls ein Fehler auftritt, zusammen rückgängig gemacht. Eine Transaktion beginnt mit einem Scriptschritt „Transaktion öffnen“. Nachdem Sie eine Transaktion gestartet haben, werden nachfolgende Datensatzänderungen in der Transaktion gehalten, bis ein Scriptschritt „Transaktion bestätigen“ oder „Transaktion rückgängig“ ausgeführt wird. Die folgenden Schritte können Datensätze ändern, die im Datenbankschema gespeichert sind, und können als transaktionale Scriptschritte verwendet werden.

Wenn Sie einen Scriptschritt „Transaktion öffnen“ zu einem Script hinzufügen, wird der Scriptschritt „Transaktion bestätigen“ automatisch mit ihm verknüpft.

Transaktionen:

  • versuchen zuerst, den derzeit aktiven Datensatz zu verlassen und alle Änderungen darin zu bestätigen, bevor sie fortfahren. Wenn der aktive Datensatz nicht verlassen werden kann, gibt „Transaktion öffnen“ einen Fehler zurück und die Scriptschritte innerhalb der Transaktion werden übersprungen.

  • kombinieren eine oder mehrere Feld- oder Tabellenänderungen zu einem einzigen Satz von Änderungen

  • bestätigen einen ganzen Satz von Änderungen oder machen ihn rückgängig

  • gruppieren Feld- oder Tabellenänderungen zwischen den Scriptschritten „Transaktion öffnen“ und „Transaktion bestätigen“

  • ermöglichen Ihnen die Erstellung eines zuverlässigeren Satzes von Änderungen

  • können mit dem Scriptschritt „Transaktion rückgängig“ automatisch rückgängig gemacht werden

  • sind als Gruppe erfolgreich (bestätigen) oder schlagen fehl (rückgängig)

  • sind erfolgreich, wenn die Schemaregeln erfüllt sind

  • werden automatisch rückgängig gemacht, wenn die Schemaregeln nicht erfüllt wurden

  • optional können Überprüfungseinstellungen übersprungen und automatische Rückgängigmachungen außer Kraft gesetzt werden, wenn die Schemaregeln nicht erfüllt wurden. Das Überschreiben von Schemaregeln kann die Integrität von Transaktionen beeinträchtigen

  • werden in einer lokalen temporären Datei geändert, bevor der Scriptschritt „Transaktion bestätigen“ die Änderungen in der Hauptdatei speichert

Transaktionen werden automatisch bestätigt und beendet, wenn:

  • die folgenden Dialogfelder verwendet werden: „Datenbank verwalten“, „Container verwalten“ und „Datenquelle verwalten“

  • die folgenden Aktionen oder Scriptschritte ausgeführt werden: „Kopie speichern unter“ und „Erneut anmelden“

  • die Datei geschlossen wird

Standardmäßig werden Transaktionen automatisch rückgängig gemacht, wenn einer der folgenden Fälle eintritt:

  • vor Beginn einer Transaktion liegt ein ungelöster Schemafehler vor. Transaktionen werden in diesem Fall automatisch übersprungen.

  • eine Änderung in einem Feld, das auf „immer überprüfen“ eingestellt ist, entspricht nicht den Überprüfungsoptionen des Feldes

  • der Scriptschritt „Transaktion rückgängig“ wird verwendet

  • ein Script wird abgebrochen

  • der Scriptschritt „Alle Scripts abbrechen“ wird innerhalb einer Transaktion verwendet

  • ein Script wird mit dem Script-Debugger abgebrochen

  • es gibt Berechtigungsfehler wie kein Feldzugriff, kein Datensatzzugriff und kein Tabellenzugriff

Um zu kontrollieren, ob Transaktionen bei Auftreten bestimmter Fehler automatisch rückgängig gemacht werden, verwenden Sie den Scriptschritt „Transaktion bei Fehler zurücksetzen“.

Hinweise 

  • Verschachtelte Transaktionen:

    • sind innerhalb desselben Scripts nicht erlaubt (der Scriptarbeitsbereich verhindert, dass eine Transaktion in eine andere eingefügt wird)

    • können angeglichen werden, indem eine Transaktion in einem Hauptscript geöffnet und dann der Scriptschritt „Script ausführen“ verwendet wird, um ein Teilscript aufzurufen. Alles im Teilscript wird im Rahmen der derzeit geöffneten Transaktion ausgeführt. Wenn das Teilscript die Schritte „Transaktion öffnen“ und „Transaktion bestätigen“ enthält, werden diese Schritte übersprungen und der Fehler 3 zurückgegeben („Befehl ist nicht verfügbar“). Aber alles vor, zwischen und nach diesen Schritten im Teilscript wird innerhalb der Hauptscript-Transaktion ausgeführt. Wenn das Teilscript den Scriptschritt „Transaktion rückgängig“ enthält, kann es die Transaktion des Hauptscripts rückgängig machen und zu dem entsprechenden Schritt „Transaktion bestätigen“ der Transaktion springen. Weitere Informationen finden Sie unter Beispiel 4.

  • Die Aktion „Datensatz löschen“, wenn sie innerhalb von Transaktionen verwendet wird, löscht jeweils einen einzelnen Datensatz.

  • Die Aktion „Tabelle leeren“ kann nicht rückgängig gemacht werden.

  • Die Aktion „Datensätze importieren“ zeigt keine Zusammenfassung an, wenn sie innerhalb von Transaktionen verwendet wird.

  • Der Scriptschritt „Transaktion rückgängig“ macht den Inkrementwert für die automatische Eingabe einer laufenden Nummer nicht rückgängig.

  • Die Option Datensatzänderungen automatisch speichern in der Layouteinstellung wird bei Transaktionen ignoriert.

  • Änderungen, die durch den Scriptschritt „FileMaker Data API ausführen“ vorgenommen werden, sind nicht in der Transaktion des Scripts enthalten. Jeder Vorgang, der in diesem Scriptschritt abgeschlossen wird, wird nicht rückgängig gemacht, auch wenn er in einer Transaktion enthalten ist.

  • Um festzustellen, ob eine Transaktion derzeit geöffnet ist, verwenden Sie die Funktion „Hole ( TransaktionOffenStatus )“.

Beispiel 1 

Öffnet und bestätigt eine Transaktion.

Kopieren
Transaktion öffnen [] 
    Datensatz/Abfrage öffnen
    Feldwert setzen [ Anlagen::Beschreibung ; "beschreibender Text" ] 
Transaktion bestätigen

Beispiel 2 

Öffnet und bestätigt eine Transaktion ohne Überprüfung der Dateneingabe.

Kopieren
Transaktion öffnen [ Dateneingabeüberprüfung unterdrücken ]
    Datensatz/Abfrage öffnen
    Feldwert setzen [ Anlagen::Beschreibung ; "beschreibender Text" ] 
Transaktion bestätigen

Beispiel 3 

Öffnet und bestätigt eine Transaktion ohne ESS-Sperrschutz.

Kopieren
Transaktion öffnen [ ESS-Sperrkonflikte überschreiben ]
    Datensatz/Abfrage öffnen
    Feldwert setzen [ Anlagen::Beschreibung ; "beschreibender Text" ]
Transaktion bestätigen

 

Beispiel 4

Das Hauptscript öffnet eine Transaktion, gibt Textfeld an und ruft dann ein Teilscript auf. Da das Teilscript aufgerufen wird, während eine Transaktion bereits geöffnet ist, wird der Schritt „Transaktion öffnen“ übersprungen, Textfeld wird auf einen anderen Wert gesetzt, dann wird die Bedingung im Schritt „Transaktion rückgängig“ ausgewertet.

Wenn ZahlenFeld gleich 1 ist, wird die aktuelle Transaktion (im Hauptscript geöffnet) rückgängig gemacht. Der Teilscriptschritt „Transaktion bestätigen“ wird übersprungen, dann geht die Steuerung zurück zum Schritt „Transaktion bestätigen“ des Hauptscripts, wobei alle Schritte nach „Script ausführen“ übersprungen werden. Wenn das Hauptscript beendet ist, bleibt der Wert von Textfeld unverändert.

Wenn ZahlenFeld gleich 0 ist, macht das Teilscript die Transaktion nicht rückgängig, so dass die Steuerung zum Schritt nach „Script ausführen“ zurückkehrt, wobei Textfeld auf abc123 gesetzt und die Transaktion bestätigt wird.

Hauptscript

Kopieren
Transaktion öffnen [ ]
    Feldwert setzen [ Tabelle::Textfeld ; "abc" ]
    Script ausführen [ Angegeben: Aus Liste ; "Teilscript" ; Parameter: ]
    Feldwert setzen [ Tabelle::Textfeld ; "abc123" ]
Transaktion bestätigen

Teilscript

Kopieren
Transaktion öffnen [ ]
    Feldwert setzen [ Tabelle::Textfeld ; "xyz456" ]
    Transaktion rückgängig [ Bedingung: Tabelle::ZahlenFeld = 1 ]
Transaktion bestätigen