BeiFensterTransaktion
Führt ein Script aus und übergibt ihm ein JSON-Objekt als Scriptparameter, nachdem eine oder mehrere Datensatzänderungen erfolgreich gespeichert wurden. Das JSON-Objekt enthält für jeden festgeschriebenen Datensatzvorgang den Dateinamen, den Namen der Basistabelle, die Datensatz-ID, die Operation sowie den Inhalt eines Kontextfelds.
Aktionen, die diesen Script-Trigger aktivieren, sind:
-
ein Datensatz wird nach seiner Erstellung, Änderung oder Löschung gespeichert
-
eine offene Transaktion wurde erfolgreich bestätigt
Wann das Script ausgeführt wird
Nach Verarbeitung des Ereignisses
Modi, in denen der Trigger verwendet werden kann
Blättern- und Suchenmodus
Ergebnis
Keine
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
20.1
Beschreibung
Jede Aktion, die einen oder mehrere Datensätze bestätigt, löst diesen Script-Trigger aus, unabhängig davon, ob sie innerhalb einer offenen Transaktion (siehe Scriptschritt „Transaktion öffnen“) erfolgt oder nicht. Dieser Trigger übergibt dem Script ein JSON-Objekt als Scriptparameter, das Informationen zu den Bestätigungen enthält. Sie können diesen Trigger in einem Script verwenden, das jede Erstellung, Änderung und Löschung eines Datensatzes protokolliert – beispielsweise in einem Prüfprotokoll, das festhält, wer Änderungen vornimmt und wann diese erfolgen.
Verwenden Sie die Funktion „Hole ( ScriptParameter )“ im ausgelösten Script, um das JSON-Objekt abzurufen. Das JSON-Objekt hat die folgende Struktur:
{
"DateiName" : {
"BasisTabellenName " : [
[ "Operation", DatensatzID, FeldInhalt ],
...
]
}
}
-
"DateiName"ist der Name der Datenbankdatei ohne Dateiendung. -
"BasisTabellenName"ist der Name der Basistabelle für die betroffenen Datensätze. -
"Operation"ist"Neu","Geändert", oder"Gelöscht". -
DatensatzIDist die interne ID-Nummer des Datensatzes. -
FeldInhaltist der Inhalt des Kontextfelds für diesen Datensatz. Über dieses Feld können Sie dem Script zusätzliche Informationen übergeben (zum Beispiel den aktuellen Benutzer, den Zeitstempel und Feldwerte). Wenn das Feld gültiges JSON enthält, wird es als JSON-Wert und nicht als String übernommen. Wenn in der Tabelle kein entsprechendes Kontextfeld vorhanden ist, wird ein leerer String verwendet.
Wenn sich eine Bestätigung (Commit) auf Datensätze in mehreren Basistabellen auswirkt, verfügt jede Tabelle über ein eigenes Array unter dem Schlüssel „DateiName“. Wenn Datensätze in Bezugstabellen aus anderen Dateien betroffen sind, verfügt jede Datei über einen eigenen Schlüssel auf oberster Ebene.
Das Kontextfeld wird bei der Konfiguration dieses Triggers in der Option Feldname angegeben. Wenn Feldname leer gelassen wird, sucht der Trigger in jeder Basistabelle nach einem Feld namens „BeiFensterTransaktion“. Wenn in einer Tabelle kein entsprechendes Feld gefunden wird, ist FeldInhalt für Datensätze aus dieser Tabelle ein leerer String.
Hinweise
-
Dieser Trigger wird für jede Datei einzeln konfiguriert. Wenn Datensätze in einer Bezugstabelle in einer anderen Datei geändert werden, werden diese Datensätze in den JSON-Parameter aufgenommen, auch wenn für diese andere Datei der Script-Trigger „BeiFensterTransaktion“ nicht konfiguriert ist.
-
Bei gelöschten Datensätzen werden die Daten der Kontextfelder erfasst, bevor der Datensatz gelöscht wird. Bei neuen und geänderten Datensätzen werden die Daten der Kontextfelder erfasst, nachdem die Datensätze gespeichert wurden.
-
Zurückgesetzte Datensätze oder Transaktionen lösen diesen Trigger nicht aus. Siehe die Scriptschritte Verwerfe Änderung Datens./Abfrage und Transaktion rückgängig.
-
Der direkte Zugriff auf die Datenbank über FileMaker Data API oder OData API löst diesen Trigger nicht aus. Scripts, die über diese APIs ausgeführt werden, können es jedoch aktivieren.
-
Ein Beispiel-Script für die Protokollierung von Audits zur Verwendung mit „BeiFensterTransaktion“ finden Sie in diesem Beitrag im Claris Engineering Blog.