FileMaker 2023
FileMaker 2023
25 avril 2023 - Auteur : - Catégories : Actu, Blog, FileMaker, Technique

FileMaker 2023

FileMaker 19 to FileMaker 2023

FileMaker 2023 est sorti ! Présentation et exploration !

Claris vient d’annoncer la disponibilité immédiate de la nouvelle version de FileMaker: FileMaker 2023.

Voilà bien longtemps que nous n’avions pas publié un long article sur une nouvelle version de FileMaker. Il faut dire que le changement de système de numérotation survenu en version 19 n’incitait pas à l’excitation. Même si certaines versions mineures comportaient des nouveautés importantes, il était difficile d’attirer l’attention dessus.

Or avec FileMaker 2023, on peut dire que « Claris sonne le clairon ». Non seulement le nom commercial du produit change : FileMaker 2023 et non FileMaker 20 (qui est pourtant bien son numéro de version), mais on a le droit à une toute nouvelle icône.

FileMaker 2023 icon

On peut toujours discuter de l’esthétique ou plaisanter en disant que c’est le Pac-man du logo de Claris qui a avalé un dossier de FileMaker, ça change quand même agréablement.
Et tant qu’à parler des logos, notons au passage que Claris Connect reçoit aussi le sien.

Icone Claris Connect

Revoilà Pac-man, mais avec un nœud papillon.

Ça donne envie de jouer au Trivial Pursuit, n’est-ce pas ? Et bien cela tombe très bien puisque cet article répondra, je l’espère, à beaucoup de questions.

Une version pour les geeks

Autant le dire tout de suite, les aspects les plus spectaculaires de cette version ont déjà été traités ci-dessus (le nom et l’icône), car FileMaker 2023 ne fera pas sauter en l’air les utilisateurs finaux avec des fonctionnalités « tape-à-l’œil ».
En revanche, elle va les ravir parce que leurs développeurs ou utilisateurs avancés vont  pouvoir répondre de manière beaucoup plus efficace à certains problèmes qu’ils devaient jusqu’ici contourner difficilement.

En réalité, j’ai moi-même longtemps cherché ce qui faisait la cohérence de cette version. À première vue, un patchwork d’évolutions disparates, mais en y regardant mieux, il y a vraiment un objectif de cohérence, de stabilité et d’extensibilité (on utilise souvent le terme anglais de « scalability »)

Si je devais tirer deux « messages » pour synthétiser les nouveautés de cette version, ce serait :

  1. La plateforme FileMaker est vivante. Certains craignaient que Claris Studio ne mobilise trop de ressources chez Claris aux dépends de FileMaker et des composantes correspondantes de la plateforme Claris. Cette version est une réponse nette à ces inquiétudes, nous verrons pourquoi.
  2. Claris n’a pas renoncé à faire de FileMaker une plateforme de son temps, capable de servir de plus grands nombres d’utilisateurs traitant plus de données, et plus intégrée. Pour cela elle s’appuie sur la communauté de développeurs en leur fournissant des outils, certes un peu « geek », mais diablement intéressants.

Note sur la compatibilité

FileMaker Pro 2023 est compatible avec

  • masOS Monterey et supérieur (donc Ventura, pour lequel plusieurs problèmes sont corrigés)
  • Windows 10 et supérieur

D’autre part, après quatre ans de maintien de la compatibilité du serveur avec FileMaker Pro 18, ce dernier ne pourra plus se connecter à FileMaker Server 2023. Attention donc, il faut FileMaker Pro 19.4.2 minimum.

 

Bien entendu, FileMaker Pro 2023 peut se connecter à FileMaker Server 19.4

Attention (bis) : si vous utilisez des plug-ins, tant côté client que côté serveur, nous vous invitons à vérifier la compatibilité auprès de l’éditeur, et à faire les mises à jour de ces plug-ins le cas échéant.

Du nouveau pour les utilisateurs (quand même)

Vous le savez, les utilisateurs sont impatients. Commençons donc par les nouveautés qui les concernent directement (il y en a !)

  • On peut maintenant lire un QR code à partir d’un document stocké dans une rubrique conteneur, et ce aussi bien sur serveur que sur le client (FileMaker Pro/FileMaker Go). De nouveaux flux automatisés de documents sont donc possibles. Pensons par exemple à la possibilité de lier un document à un enregistrement automatiquement.
  • La fonction ObtenirLiveText ) (macOS/iOS) est désormais compatible serveur (mac OS)
  • Import du certificat de licence ! Enfin ! Le fait de double-cliquer sur un certificat de licence Claris va désormais lancer le processus d’enregistrement de la licence. Voilà qui va simplifier la vie des utilisateurs et des administrateurs.
  • Envoi d’e-mail avec authentification OAuth2. Oui, je suis d’accord, vu le titre ça pourrait plutôt passer dans la section « pour les geeks », mais en fait ça concerne très directement les utilisateurs qui étaient confrontés à l’évolution des messageries Gmail et Office 365. On peut à nouveau les utiliser directement depuis FileMaker.
  • Support de sFTP pour le pas de script Insérer depuis URL.
  • Une autre mise à jour technique mais qui fera plaisir à certains utilisateurs et administrateurs : le nombre maximal de fichiers hébergés sur FileMaker Server passe de 125 à 256. Je fais le pari que ce sera une question du prochain examen de certification, vous l’aurez lu ici en premier 🙂

Encore deux points sur Claris Connect pour faire plaisir aux utilisateurs, et ensuite on attaque le dur.

  • C’est un des points les plus importants : Claris Connect, le service d’automatisation et d’orchestration de Claris (vidéo) a désormais une licence gratuite.
  • FileMaker Pro se trouve pourvu d’un nouveau pas de script –Déclencher un flux Claris Connect (Trigger Claris Connect Flow)– qui rend extrêmement facile l’intégration des deux outils. À vrai dire, il m’est impossible de trouver une explication au fait que cela n’ait pas été le cas avant. Toujours est-il qu’on peut maintenant sans connaissance particulière de cURL déclencher un flux Claris Connect et en récupérer le résultat dans une variable. Il y a vraiment de quoi, même pour des développeurs avancés, rendre Claris Connect beaucoup plus attractif.

Cette fois-ci, c’est la fin des fonctions « utilisateurs », le reste -le plus important et de loin- sera…

…réservé aux geeks, aux développeurs, et aux administrateurs exigeants…

C’est bon ? nous sommes entre nous maintenant ? Je vais pouvoir utiliser plein d’acronymes et de jargon ?

Non, rassurez-vous, je dois absolument en placer quelques-uns, mais il y a des grandes nouveautés fonctionnelles. Accrochez-vous, je garde le meilleur pour la fin.

FileMaker 2023, une énorme mise à jour logicielle

Voilà qui est très rassurant pour la plateforme. Une grande partie des librairies et frameworks qui sous-tendent la plateforme ont été mis à jour, notamment sur le serveur. Java, Vaadin, Tomcat… C’est un excellent signe que Claris travaille vraiment sur la plateforme et ne se contente pas d’avancées de surface pour satisfaire le marketing.

Un petit étonnement tout de même : Java est mis à jour en 17 alors que la version la plus récente est 19, mais je ne connais pas les raisons ni les implications.

Un petit regret aussi : le WebKit embarqué dans le web viewer est toujours le même, et c’est un peu dommage car nombre de librairies javascript tirent partie des évolutions récentes. Par exemple notre add-on au succès inespéré 1MT PDF Viewer ne peut pas intégrer certaines fonctionnalités.

Une version ARM et un load balancer pour une stratégie assumée

Nous l’avons déjà évoqué, la stratégie de Claris est de réduire le nombre de versions de FileMaker Server, et donc de ne plus supporter que Linux.

C’est un excellent choix que nous appelions depuis longtemps de nos vœux, car il permettra à Claris d’aller beaucoup plus vite dans le développement.

Reste que… les clients ne sont pas tous sous Linux. C’est pourquoi on s’oriente vraisemblablement sur un serveur Linux qui pourra être virtualisé sur macOS ou Windows, l’utilisateur n’y voyant alors aucune différence.

Or nombre de PC, à commencer par les Mac récents (oui, les Mac sont aussi des PC, n’en déplaise à certains que je ne nommerais pas, mais qui vivent à Strasbourg, ont une grande moustache, et font partie de notre équipe depuis 10 ans cette année !), tournent désormais sur une architecture ARM et non plus x86.

Et justement, avec FileMaker 2023, Claris sort une version de FileMaker Server pour processeur ARM. D’après nos tests, ce n’est pas encore la panacée en termes de performances, mais il est très important pour la communauté de développeurs de savoir que cette version existe déjà et qu’elle va progresser et être optimisée.

Au passage, Ubuntu 22 est supporté. Ce qui veut dire que Claris supporte désormais Ubuntu 20/x86, Ubuntu 22/x86, Ubuntu 22/ARM, et bien sûr les versions macOS et Windows de FileMaker Server. Ça commence à faire, mais en plus les versions Linux sont aussi déclinées en Claris Server (l’équivalent de FileMaker Server pour la nouvelle plateforme Claris)

Load balancing, gestion du cache et garbage collector

Les versions Linux de FileMaker Server, qui utilisent le serveur web NginX, permettent désormais d’installer très facilement des serveurs secondaires pour gérer un vrai load balancing pour les utilisateurs Web Direct.

Entre nous, les performances que nous atteignons déjà sur fmcloud.fm, en raison de son architecture moderne, font que nous n’avons jamais, même dans des cas extrêmes, été confrontés à une limitation des capacités du serveur web, mais nous sommes curieux de voir l’impact sur les applications les plus exigeantes.

Gestion du cache

La version 19.6 avait déjà permis de supprimer le cache du client (FileMaker Pro) depuis les préférences de l’application. La version 20 (FileMaker 2023) ajoute des fonctions d’obtention Obtenir ( CheminFichierCache ) (Get ( CacheFileName )) et Obtenir ( NomFichierCache ) (Get ( CacheFilePath )), qui permettent de supprimer le fichier de cache par script, afin de procéder à des tests de performance sans relancer l’application. Oui c’est méchamment geek, mais c’est vraiment une bonne nouvelle pour les optimisations dont nous sommes friands.

Côté serveur, une nouveauté permet d’allouer plus ou moins de mémoire cache aux vues en liste sur Web Direct. Concrètement, il est possible de configurer le nombre d’enregistrements que Web Direct devra pré-charger afin de fluidifier le défilement (scroll). Attention, cette fonctionnalité ne se retrouve pas dans la console d’administration, ne perdez pas de temps à l’y chercher.

Java garbage collector sur le serveur.

Deux fonctionnalités : un bouton qui permet de déclencher le garbage collector, et la possibilité de programmer ce processus, comme on exécute un script ou, comme depuis la version 19, comme on nettoie le cache.

Je ne vais pas m’étendre sur ce qu’est le garbage collection (ramassage des poubelles, littéralement), mais c’est un processus qui permet de libérer les adresses mémoire qui n’ont pas été libérées par le processus qui les a allouées. En d’autres termes, ça fait le ménage là où les développeurs du serveur ou d’une de ses nombreuses composantes ont oublié de le faire. Nous sommes curieux de voir ce que cela peut améliorer dans les scénarios où le serveur utilisait de plus en plus de mémoire au fur et à mesure des connexions Web Direct.

D’autres fonctionnalités de FileMaker Server 2023

Je le sens bien, vous aimeriez qu’on arrive au grandes nouveautés, mais bien que plus discrètes, celles qui viennent en sont, des grandes nouveautés, classées par ordre d’importance croissant (selon un point de vue universel et objectif : le mien)

  • Je passe sur la gestion des sauvegardes annulées. Cela complète la possibilité d’annuler les sauvegardes apparue avec FileMaker Server 19.5
  • L’accès à la console d’administration de la version Linux du serveur peut désormais être contrôlé par Active Directory.
  • Le nom des programmes de script peuvent atteindre 100 caractères, ce qui est nettement plus confortable que les 31 précédemment.
  • Les nouvelles connexions sont refusées quand un fichier est en cours de fermeture. Jusqu’ici, quand on fermait un fichier on provoquait la fin de session des utilisateurs, mais si une nouvelle connexion intervenait on ne pouvait pas l’empêcher. C’est un grand progrès pour les administrateurs d’applications avec un grand nombre d’utilisateurs.
  • Data API supporte désormais la fonction d’enregistrement de PDF.
  • Log des scripts serveur. Deux nouveautés :
    • l’action de script « Activer la journalisation des erreurs » est désormais compatible serveur.
    • les événements de scripts sont désormais enregistrés dans un log différent des événements serveur. ScriptEvent.log. Excellente nouvelle, mais qui peut potentiellement vous obliger à revoir vos procédures, si vous aviez automatisé des traitement sur les fichier de log.
  • OData devient vraiment très, très puissant puisqu’il peut maintenant travailler sur les données liées. OData est sans doute la moins connue des méthodes de publication de données FileMaker, mais elle est pourtant extraordinairement simple et puissante.

Les grandes nouveautés

Enfin ! les deux nouveautés phare de FileMaker 2023.

Exécution de script sur serveur avec call-back

Depuis FileMaker 13 il est possible d’exécuter aisément un script sur le serveur depuis le client (en réalité depuis avant cela si vous suivez nos aventures).

Cela a ouvert bien des possibilités, avec des traitements bien plus rapides et sécurisés.

De plus, cela autorisait l’exécution de processus parallèles, le client n’étant pas obligé d’attendre la fin de l’exécution du script sur le serveur. Le poste client pouvait donc vaquer à ses occupations, voire déclencher d’autres scripts sur le serveur, pendant que le serveur travaillait.

Le problème qui se posait, c’était que le client n’avait pas moyen d’être averti que le serveur avait fini son travail. On était obligé de développer des systèmes de messagerie compliquées, et le poste client devait s’assurer régulièrement qu’aucun message n’était arrivé.

C’est désormais de l’histoire ancienne puisqu’un nouveau pas de script Exécuter script sur serveur avec rappel (Perform Scrip on Server With Callback, ou PSoSWC) permet désormais non seulement d’exécuter un script sur le serveur, mais de faire en sorte qu’un autre script soit déclenché sur le poste client quand celui-ci a terminé.

On peut donc par exemple signaler à l’utilisateur que son rapport est prêt ou qu’une opération lourde est terminée.

Bon à savoir : le résultat du script (défini dans l’instruction Fin de script) du script serveur est repris comme paramètre de script du script Call-back.

Regret : contrairement aux deux autres principaux pas de script permettant d’exécuter un script (Exécuter script et Exécuter script sur serveur), il n’est pas possible d’appeler un script par son nom ! (ni le script call-back, ni même le script serveur). Quel dommage !

Perform Script on Server With Callback

Les transactions de fenêtres (ou « audit log »)

Vous le savez ou non, l’audit log est pratiquement devenue une passion personnelle. La principale raison de cette « passion » pour la conservation des modifications de données vient probablement du fait qu’il n’est pas possible en FileMaker d’avoir un log 100% fiable. Une sorte de quête du Graal. Vaine mais belle.

Néanmoins, en développant FM AuditLog Pro, je crois avoir percé bien des mystères du fonctionnement de FileMaker, compris certaines finesses du moteur de calcul, de la sécurité, et bien sûr du modèle de données et de l’arbre de dépendances.

Inutile de dire, donc, que la lecture dans les nouveautés de la mention « Audit log » avait de quoi éveiller mon attention. Cette fonctionnalité est une petite merveille, mais de « bas niveau », et conçue pour que l’on puisse fabriquer son système de log. Ça n’est pas en soi un audit log.

Voici le principe en quelques mots. Nous publions simultanément un article entièrement dédié à cette fonctionnalité qui demande d’être explicitée.

  • Un nouveau déclencheur figure au niveau du fichier (Options de fichier) : SurOperationFenetre (pourquoi « Opération » ?, je ne sais pas, c’est une traduction littérale de Transaction en anglais (OnWindowTransaction), mais il aurait fallu prendre un autre dictionnaire que celui de Wall Street :). Il s’agit bien de transactions de fenêtres.
  • Si ce déclencheur est activé, toute validation d’enregistrement ou suppression d’enregistrement va déclencher ce script.
  • Le script recevra en paramètre du JSON indiquant les fichiers, les tables, les enregistrements (ID) concernés, ainsi que le type de modification (New, Modified, Deleted)
  • Au sein de ce paramètre en JSON, on pourra pour chaque enregistrement ajouter un paramètre personnalisé qui sera le contenu d’une rubrique nommée OnWindowTransaction. Il est possible de choisir un autre nom dans les options de fichier, mais ce nom devra être cohérent dans toutes les tables du fichier. Cette rubrique peut bien entendu être calculée, afin de contenir le nom des champs et les valeurs modifiées, ou autre information.
    Si le contenu de cette rubrique est du JSON, ce JSON ne sera pas converti en string.
  • Bien sûr, le script permet d’enregistrer les transactions.

Vous n’avez rien compris ? c’est normal. On se retrouve sur l’article dédié à l’audit log.

Bonus : les Tables de base (BaseTables)

En lien avec l’audit log, Claris nous gratifie de quelques fonctions permettant de travailler sur les tables, par opposition aux occurrences de tables.

Partout dans FileMaker à quelques exceptions près (onglet Tables de la définition de bases de données, sécurité, action de script Tronquer la table), le mot « Table » fait référence non pas aux tables mais aux occurrences de table.

Les vraies tables n’apparaissaient que dans une table système, interrogeable avec la fonction ExecuterSQL, FileMaker_Tables, qui représente les occurrences de table, mais qui comporte une colonne BaseTableName.

En version 19, Claris avait ajouté une autre table : FileMaker_BaseTableFields, qui était une vue dédoublonnée de FileMaker_Fields.

Cela change enfin, avec une série de nouvelles fonctions et tables SQL.

  • NomsTableBase ( NomFichier ) (BaseTableNames ( file )) permet de lister toutes les tables (noms) d’un fichier
  • IDsTableBase ( NomFichier ) (BaseTableIDs ( file )) permet de lister les IDs de ces tables. Notons au passage que pour ces deux fonctions, nous avons un mélange singulier pluriel (on devrait écrire TablesBase). Au passage, les fonctions de conceptions équivalentes pour les IDs sont traduites en français au singulier (IDTable, IDModele…) ce qui est une erreur.
  • ObtenirNomTableBase ( rubrique ) (GetBaseTableName ( field )) permet d’obtenir le nom de la table de base d’une rubrique.
  • Une nouvelle table interne, FileMaker_BaseTables, comporte les colonnes suivantes : BaseTableName, BaseTableID, Source (<Internal>, MYSQL…), ModCount.

Malheureusement cet arsenal est très incomplet. La table système FileMaker_BaseTables, de même que FileMaker_BaseTableFields apparue en 19 ne prend pas en compte les tables de fichiers externes référencées dans le graphique des liens du fichier courant. Il est donc possible mais complexe de récupérer l’ID d’une table d’un fichier lié.
L’absence de fonction ObtenirNomFichier ( rubrique ) (GetFileName ( field )) et de ObtenirIDTableBase ( rubrique ) (GetBaseTableID ( field )), voire d’une colonne BaseTableID dans la table système FileMaker_Fields ne facilite en rien ces requêtes.

En conclusion…

Comme nous l’avons vu, cette version fourmille de nouveautés (et je n’ai pas tout abordé !), qui à première vue sont très disparates et forment un patchwork.

En réalité, il y a des implications très fortes. Je vais tenter de les résumer afin d’en dégager une idée générale.

  • Vers un serveur Linux unique, sur ARM comme sur x86. Pas de panique, j’ai bien écrit « vers ».
  • Un serveur capable de gérer plus d’applications (256), plus d’utilisateurs (load balancing) et mieux outillé pour gérer la mémoire, voire la configurer finement.
  • OData et Data API de plus en plus puissants.
  • Des outils pour débugger les scripts serveur.
  • Une intégration facilitée avec Claris Connect, et une version gratuite pour ce dernier
  • Exécution de scripts serveur avec call-back. Une grande incitation à déléguer encore plus au serveur.
  • Un « audit log » qui permet d’envisager de mémoriser des transactions et donc de pouvoir les ré-exécuter sur un autre serveur…

Comme on le voit, et conformément à la vision que nous avions annoncée il y a déjà plusieurs années, la composante centrale de la plateforme est de plus en plus le serveur. Il est de plus en plus aisé et efficace de concevoir des solutions dans lesquelles FileMaker Pro/Go n’est qu’un front end de luxe et délègue les tâches lourdes à FileMaker Server, à la manière de Web Direct. Le choix d’un hébergement n’a donc jamais été aussi crucial. (comparatif selon fmcloud.fm).

Voilà, j’espère que ce long article vous aura permis d’aller plus vite et plus loin dans votre découverte de FileMaker 2023. N’hésitez pas à partager sur les réseaux.

Article précédent/suivant
Comments (2)
  • Jérémie Gimenez - 2 octobre 2023 - Répondre

    Alors, 20.2 est maintenant sorti… Est-ce que cette nouvelle version méritera un article à part entière ?

    • Fabrice - 2 octobre 2023 - Répondre

      En fait il y a déjà une vidéo sur les calculs de modèles (layout calculations), mais sur la version anglaise de notre blog
      Quant à une vidéo complète, elle viendra bientôt… et on fera d’une pierre plusieurs coups ! N’oubliez pas de nous suivre sur LinkedIn pour en être informé.

Add comment

Ce site est protégé par reCAPTCHA et la Politique de confidentialité, ainsi que les Conditions de service Google s’appliquent.