BijVensterTransactie

Voert een script uit en geeft dit door als een JSON-object als scriptparameter nadat een of meer recordwijzigingen zijn doorgevoerd. Het JSON-object bevat de bestandsnaam, de naam van de basistabel, de record-ID, de bewerking en de inhoud van een contextveld voor elke vastgelegde recordbewerking.

Acties die deze scriptactivering in werking zetten, zijn:

  • een record wordt vastgelegd nadat deze is gemaakt, gewijzigd of verwijderd

  • een open transactie is doorgevoerd

Wanneer wordt het script uitgevoerd 

Nadat de gebeurtenis is verwerkt.

De modi waarin de activering kan worden gebruikt 

Modi Bladeren en Zoeken.

Resultaat 

Geen.

Compatibiliteit 

Product Ondersteund

FileMaker Pro

Ja

FileMaker Go

Ja

FileMaker WebDirect

Ja

FileMaker Server

Ja

FileMaker Cloud

Ja

FileMaker Data API

Ja

Custom Web Publishing

Ja

Afkomstig uit versie 

20.1

Beschrijving 

Elke actie die een of meer records bindt, activeert deze scripttrigger, ongeacht of deze binnen een open transactie valt (zie de Transactie openen scriptstap) of niet. Deze trigger geeft het script een JSON-object door als scriptparameter met informatie over de vastleggingen. U kunt deze trigger gebruiken in combinatie met een script dat elke gemaakte, gewijzigde en verwijderde record registreert, bijvoorbeeld in een controlelogboek met wijzigingen, wie deze aanbrengt en wanneer.

Gebruik de Get (ScriptParameter) functie in het getriggerde script om het JSON-object op te halen. Het geretourneerde JSON-object heeft de volgende indeling:

Kopiëren
{
  "FileName" : {
    "BaseTableName" : [
      [ "Operation", RecordID, FieldContent ],
      ...
    ]
  }
}
  • "FileName" is de bestandsnaam van de database zonder de bestandsextensie.

  • "BaseTableName" is de naam van de basistabel voor de betrokken records.

  • "Operation" is "New", "Modified", of "Deleted".

  • RecordID is het interne ID-nummer van de record.

  • FieldContent is de inhoud van het contextveld voor die record. U kunt dit veld gebruiken om aanvullende informatie aan het script door te geven (bijvoorbeeld de huidige gebruiker, tijdstempel en veldwaarden). Als het veld geldige JSON bevat, wordt het opgenomen als een JSON-waarde in plaats van als een tekstreeks. Als de tabel geen overeenkomend contextveld bevat, wordt een lege tekenreeks gebruikt.

Wanneer een commit van invloed is op records in meerdere basistabellen, heeft elke tabel een eigen array onder de sleutel "FileName". Wanneer records in gerelateerde tabellen van andere bestanden worden beïnvloed, heeft elk bestand zijn eigen sleutel op het hoogste niveau.

Het contextveld wordt opgegeven bij de optie Veldnaam wanneer u deze trigger configureert. Als Veldnaam leeg wordt gelaten, zoekt de trigger naar een veld met de naam OnWindowTransaction in elke basistabel. Als er geen overeenkomend veld wordt gevonden in een tabel, is FieldContent een lege tekenreeks voor records uit die tabel.

Opmerkingen 

  • Deze trigger wordt per bestand geconfigureerd. Als records worden gewijzigd in een gerelateerde tabel in een ander bestand, worden deze recordvermeldingen opgenomen in de JSON-parameter, zelfs als voor dat andere bestand de OnWindowTransaction-scriptactivering niet is geconfigureerd.

  • Voor verwijderde records worden contextveldgegevens vastgelegd voordat de record wordt verwijderd. Voor nieuwe en gewijzigde records worden contextveldgegevens vastgelegd nadat de records zijn toegewezen.

  • Teruggedraaide records of transacties activeren deze trigger niet. Zie de scriptstappen Vorige versie record/verzoek en Transactie ongedaan maken.

  • Directe toegang tot de database via FileMaker Data API of OData API activeert deze trigger niet. Scripts die via deze API's worden uitgevoerd, kunnen deze echter wel activeren.

  • Voor een voorbeeld van een audit logging script voor gebruik met OnWindowTransaction, zie deze Claris Engineering blogpost.