Öppna transaktion

Påbörjar en transaktion. Efterföljande poständringar bevaras i transaktionen tills något av scriptstegen Verkställ transaktion och Återställ transaktion har körts.

Obs!  Transaktioner hanteras i det ursprungliga fönstret. Åtgärder som vidtas i andra fönster än den ursprungliga transaktionens fönster verkställs automatiskt utanför befintliga transaktioner.

Tillval 

  • Hoppa över kontroll vid datainmatning åsidosätter alla alternativ för kontroll av datainmatning som har ställts in för fält och verkställer posten ändå. Detta alternativ hoppar endast över kontroll för fält som ställts in med kontrollalternativet Endast vid datainmatning i dialogrutan Tillval för fält. Fält som har ställts in på kontrollera Alltid kontrolleras även om alternativet Hoppa över kontroll vid datainmatning är markerat. Mer information finns i Definiera fältkontroll.

  • Ignorera ESS-låsningskonflikter tillåter klienter till ODBC-datakällor att forcera verkställning av ändringar när optimistisk låsning förhindrar att åtgärden utförs. ODBC-datakällor kallas också för externa SQL-källor (ESS).

Kompatibilitet 

Produkt Stöds
FileMaker Pro Ja
FileMaker Go Ja
FileMaker WebDirect Ja
FileMaker Server Ja
FileMaker Cloud Ja
FileMaker Data API Ja
Anpassad webbpublicering Ja

Ursprungsversion 

19.6.1

Beskrivning 

En transaktion består av ändringar i en eller flera poster i det aktuella fönstret. Ändringar i en transaktion kan påverka flera tabeller i flera databasfiler. Alla ändringar i en transaktion verkställs tillsammans eller återställs tillsammans om ett fel uppstår. En transaktion startas med scriptsteget Öppna transaktion. När du har startat en transaktion lagras efterföljande poständringar i transaktionen tills scriptsteget Verkställ transaktion eller Återställ transaktion utförs. Nedanstående steg kan ändra poster som lagras i databasschemat och kan användas som scriptsteg för transaktioner.

När du lägger till scriptsteget Öppna transaktion i ett script läggs scriptsteget Verkställ transaktion till automatiskt.

Transaktioner

  • börjar med att försöka avsluta, och genomföra eventuella ändringar i den aktiva posten innan de fortsätter. Om det inte går att avsluta den aktiva posten returnerar Öppna transaktion ett fel och scriptstegen i transaktionen hoppas över.

  • kombinerar en eller flera fält- eller tabelländringar som en enda uppsättning ändringar

  • verkställer eller återställer en hel uppsättning ändringar

  • grupperar fält- eller tabelländringar mellan scriptstegen Öppna transaktion och Verkställ transaktion

  • gör att du kan skapa en mer tillförlitlig uppsättning ändringar

  • kan återställas automatiskt med scriptsteget Återställ transaktion

  • genomförs (verkställs) eller misslyckas (återställs) som en grupp

  • genomförs när schemareglerna uppfylls

  • återställs automatiskt när schemareglerna inte uppfylls

  • kan hoppa över kontrollinställningar om man så önskar och åsidosätta automatiska återställningar när schemaregler inte uppfylls (att åsidosätta schemaregler kan skada transaktionens integritet)

  • modifieras i en lokal tillfällig fil innan scriptsteget Verkställ transaktion sparar ändringarna i huvudfilen.

Transaktioner utförs automatiskt och avslutas när:

  • Följande scriptsteg ändrar layoutfönstret: Nytt fönster, Stäng fönster eller Välj fönster

  • Följande dialogrutor används: Hantera databas, Hantera container eller Hantera datakälla

  • Följande åtgärder eller scriptsteg utförs: Spara en kopia eller Logga in igen.

  • filen stängs.

Som standard återställs transaktionerna automatiskt när:

  • det finns ett olöst schemafel innan en transaktion påbörjas (transaktioner hoppas i så fall över automatiskt).

  • en ändring i ett fält som har inställningen att alltid kontrolleras och ändringen inte överensstämmer med fältets kontrollalternativ

  • scriptsteget Återställ transaktion används

  • ett script avbryts

  • scriptsteget Avbryt script används i en transaktion

  • ett script avbryts med hjälp av Scriptdebuggern

  • det finns behörighetsfel, som ingen åtkomst till fält, post eller tabell.

Om du vill kontrollera huruvida transaktioner ska återställas automatiskt när vissa fel inträffar använder du Scriptsteget Välj återställ transaktion vid fel.

Kommentarer 

  • Inbäddade transaktioner:

    • är inte tillåtna inom samma skript (det går inte att sätta en transaktion inuti en annan i Scriptfönster)

    • kan approximeras genom att öppna en transaktion i ett huvudskript och sedan använda Scriptsteget Utför script för att anropa ett delskript. Allt i delscriptet utförs inom ramen för den för närvarande öppna transaktionen. Om delscriptet innehåller stegen Öppna transaktion och Verkställ transaktion hoppas dessa steg över och returnerar fel 3 ("Kommandot är inte tillgängligt"), men allt före, mellan och efter dessa steg i delscriptet utförs inom huvudscriptets transaktion. Om delscriptet innehåller steget Återställ transaktion kan det återställa huvudscriptets transaktion och hoppa till transaktionens steg Verkställ transaktion. Mer information finns i Exempel 4.

  • När åtgärden Radera post används i transaktioner raderas en enskild post i taget.

  • Åtgärden Nollställ tabell kan inte återställas.

  • Åtgärden Importera poster visar ingen sammanfattning när den används i transaktioner.

  • Scriptsteget Återställ transaktion återställer inte automatiskt inmatad ökning av löpnummer.

  • Alternativet Spara poständringar automatiskt i Tillval för layout ignoreras under transaktioner.

  • Ändringar som görs av scriptsteget Utför FileMaker Data API omfattas inte i scriptets transaktion. Eventuella åtgärder som utförs inom det scriptsteget, även om det ingår i en transaktion, återställs inte.

  • Använd Funktionen Get ( TransaktionÖppenStatus ) om du vill kontrollera om en transaktion är öppen .

Exempel 1 

Öppnar och verkställer en transaktion.

Kopiera
Öppna transaktion [] Öppna post/sökpost Tilldela fält [ Tillgångar::Beskrivning ; "beskrivande text" ] Verkställ transaktion

Exempel 2 

Öppnar och verkställer en transaktion utan kontroll vid datainmatning.

Kopiera
Öppna transaktion [ Hoppa över kontroll vid datainmatning ] 
    Öppna post/sökpost 
    Tilldela fält [ Tillgångar::Beskrivning ; "beskrivande text" ] Verkställ transaktion

Exempel 3 

Öppnar och verkställer en transaktion utan skydd för ESS-låsning.

Kopiera
Öppna transaktion [ Ignorera ESS-låsningskonflikter ] 
    Öppna post/sökpost 
    Tilldela fält [ Tillgångar::Beskrivning ; "beskrivande text" ] Verkställ transaktion

 

Exempel 4

Huvudskriptet öppnar en transaktion, anger Textfält och anropar sedan ett delscript. Eftersom delscriptet anropas medan en transaktion redan är öppen hoppas steget Öppna transaktion över, Textfält ställs in på ett annat värde och sedan utvärderas villkoret i steget Återställ transaktion.

Om Talfält är 1 återställs den aktuella transaktionen (som öppnats i huvudskriptet). Delscriptets steg Verkställ transaktion hoppas över, och kontrollen går sedan tillbaka till huvudscriptets steg Verkställ transaktion medan eventuella steg efter Utför script hoppas över. När huvudscriptet är klart är värdet för Textfält oförändrat.

Om Talfält är 0 återställer delscriptet inte transaktionen, så kontrollen återgår till steget efter Utför script, där Textfält anges till abc123 och transaktionen är verkställs.

Huvudscript

Kopiera
Öppna transaktion [ ]
    Tilldela fält [ Tabell::Textfält ; "abc" ]
    Utför script [ Angivet: Från lista ; "Delscript" ; Parameter: ]
    Tilldela fält [ Tabell::Textfält ; "abc123" ]
Verkställ transaktion

Delscript

Kopiera
Öppna transaktion [ ]
    Tilldela fält [ Tabell::Textfält ; "xyz456" ]
    Återställ transaktion [ Villkor: Tabell::Talfält = 1 ]
Verkställ transaktion