Audit trail pour versions > 9, utilisant les triggers
A partir de la version 10 de FileMaker Pro, il est désormais facile de mettre en place un audit trail complet, sur une série de rubriques sélectionnées, et de manière transparente quel que soit le modèle à partir duquel s'opère la modification, et notamment à travers une TE. Pour cela, c'est toute la puissance des déclencheurs de script (triggers) qui est utilisée, en simplifiant considérablement la mise en place de l'audit trail. En effet,FileMaker Pro permet de déclencher un script en entrée de rubrique et un autre en sortie de rubrique. En entrée de rubrique, on en capte la valeur, et en sortie, on la comparer à la nouvelle valeur. Si une différence existe, on la rapporte dans un rubrique "log" située sur une autre table. Il y a un log par enreg. de la table principale. Ainsi, en cas de suppression d'un enreg., la trace de ses données reste dans le fichier. Deux simples scripts suffisent donc, et chacune des rubriques/modèle tracées est "équipée" avec les deux déclencheurs, un en entrée et l'autre en sortie de rubrique. Vous trouverez un fichier d'exemple ici. Une seule astuce : sur chacun des modèles permettant la modification des données tracées se trouve une rubrique liée (laissée intentionnellement en rouge), qui est une rubrique calculée de la table log. Son contenu est sans importance, et elle a deux rôles : - elle permet de déterminer le chemin complet vers la table Log, via les liens mis en place - pour ce faire, on est obligé de l'activer, donc de "rentrer dedans". Elle est donc calculée pour ne pas être modifiable. Cette rubrique, dans un développement normal, devrait être de dimension 1 px X 1 px. Précisons également que le respect d'une nomenclature pour les noms d'OT est nécessaire afin que les scripts soient fonctionnels indépendamment du contexte (ou presque). Il est évident que, dans une application professionnelle, il est exclu de laisser à l'utilisateur la possibilité de créer un nouveau modèle et d'utiliser le mode "tableau"... Christian |