Claris FileMaker 2023: Transazioni e audit trail

Claris FileMaker 2023 è disponibile da oggi per tutte le piattaforme. Fra le tante innovazioni di questa versione, una delle principali è un nuovo trigger chiamato SuTransazioneFinestra.

Ma cosa intendiamo per "transazione"?

Una delle caratteristiche principali dei sistemi informativi è il garantire la consistenza dei dati, normalmente mediante un sistema ACIDo transazionale. Il che significa che nel momento in cui salviamo i dati, la procedura deve essere:

  • Atomica: il processo deve essere suddivisibile in un numero finito di unità indivisibili, chiamate transazioni.
  • Coerente: il database rispetta i vincoli di integrità, sia a inizio che a fine transazione;
  • Isolata: ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre transazioni, l'eventuale fallimento di una transazione non deve interferire con le altre transazioni in esecuzione;
  • Durevole: una volta effettuata una transazione i cambiamenti apportati non dovranno essere più persi.

Tradizionalmente, in FileMaker il problema è sempre stato che il motore soddisfa i criteri transazionali, ma il salvataggio dei dati era difficile da intercettare da parte degli utenti, quindi - pur essendo formalmente corretto al livello di database - il processo di inserimento permetteva all'utente di non inserire tutti i dati richiesti da una procedura prima di salvare il record.

La prima soluzione reale è arrivata con l'introduzione dei trigger in FileMaker 10 e l'utilizzo del trigger SuSalvataggioRecord, che permetteva di gestire le transazioni, sia pure con qualche limitazione (soprattutto sui record correlati).

FileMaker 19.6 ci ha portato una gestione strutturata delle transazioni via script, che rappresenta un grande passo avanti. FileMaker 2023 aggiunge la ciliegina sulla torta: un trigger che lancia uno script nel momento in cui una transazione viene effettuata.

O meglio: DOPO che una transazione viene effettuata. Infatti gli script trigger sono lanciati prima di un evento (e in questi casi possono annullarlo) o dopo di esso: SuTransazioneFinestra appartiene al secondo caso.

SuTransazioneFinestra si attiva dalle opzioni file e opera in tutte le finestre aperte del database.

Rispetto ai trigger tradizionali, ha un funzionamento particolare: richiede uno script, permette di inserire il nome di un campo facoltativo (solo il nome con inserimento libero e senza la tabella di riferimento) e non consente l'utilizzo di parametri.

Il motivo è molto semplice: ogni volta che un record viene salvato lancia lo script specificato, passando come parametro un JSON contenente il nome della tabella, l'ID del record (quello interno, restituito dalla funzione get(IDRecord)e la tipologia della modifica, sia relativi al record del formato che ad eventuali record correlati. Nel caso si sia specificato un campo E il campo sia presente nella tabella, viene aggiunto al parametro.

È importante notare che il parametro in se non contiene i dati presenti nel record. Se ci servono, possiamo usare il campo specificato per immagazzinarli. Nell'esempio sottostante abbiamo creato un campo "aaa" in tutte e due le tabelle con i dati che ci servono. Si può anche notare come due dei tre record correlati (il 4 e il 5 ) sono stati modificati, mentre il terzo (il 9) è stato creato.

Ma la grande novità rispetto a qualunque strumento messo a disposizione in precedenza da Claris è che il trigger intercetta anche l'eliminazione dei record:

In questo caso eliminare un record elimina anche i correlati, e il trigger agisce di conseguenza. Anche eliminando un record da riga di portale il comportamento è coerente e parte un trigger che riporta correttamente l'eliminazione.

L'effetto è impressionante: avendo semplicemente un parametro di script possiamo fare tutto quello che vogliamo: eseguire script su server, scrivere su un file di testo, scrivere su un altro file… abbiamo solo la fantasia come limite. Ad esempio, uno script come questo (che può essere eseguito anche server-side):

riporta ogni modifica in un file di testo.

Non mi resta che darvi appuntamento per parlare della nuova release di FileMaker nel nostro Bar FileMaker interamente dedicato a FileMaker 2023, che si terrà il 6 Maggio 2023 alle ore 10 (clicca qui per iscriverti e ricevere reminder e aggiornamenti). E ricorda, l’accesso al Bar FileMaker è gratuito, ma a numero chiuso, e sarà disponibile esclusivamente LIVE.




Nessuna domanda trovata.

Giulio Villani

Utilizza FileMaker dalla versione 2 (A.D. 1993), per sviluppare idee e soluzioni, e risolvere problemi. Membro della Filemaker Business Alliance, sviluppatore Certificato FileMaker su tuttele versioni a partire dalla 11, FileMaker Certified Trainer, si occupa di formazione, consulenza, sviluppo di soluzioni, con qualche incursione nell’editoria. Oltre a “Sviluppo FileMaker consapevole”, è autore di “FileMaker Pro 9 La Grande Guida” e di “FileMaker Pro 10 La Grande Guida”, entrambi editi da Mondadori Informatica, di articoli e di recensioni sulle principali riviste italiane del settore. Utilizza – con sentimenti ambivalenti – anche PHP, JavaScript, CSS/HTML, MySQL e NoSQL. Feroce capacità di analisi e problem solving.
Cerca
Prendi la corsia preferenziale e risolvi i tuoi problemi di sviluppo FileMaker!

Risorse gratuite

Guru Corner

Altri articoli di Giulio Villani

Ultimi articoli