Avec l’arrivée de FileMaker Pro 18, il est désormais possible de créer, modifier ou supprimer des fichiers. En couplant ces nouvelles fonctionnalités avec la fonction exécuter script depuis le serveur il est même maintenant possible de créer, modifier et supprimer des fichiers directement dans le dossier Documents de FileMaker Server.
Cependant sur macOS, il n’était possible d’agir que sur les fichiers créés depuis FileMaker Pro 18. En effet, on peut constater que tous les fichiers créés dans le dossier Documents, autrement que par FileMaker Pro 18, possèdent des permissions de lecture seule pour le groupe utilisateur « fmsadmin ». Ce groupe est le groupe utilisé par FileMaker Server 18 lorsqu’on lui demande de manipuler des fichiers lors de l’exécution d’un script par exemple.
La société Galvatek, une société industrielle avec qui nous collaborons depuis de nombreuses années, saisissait la majorité de ses commandes via un logiciel tiers pour ensuite les ressaisir dans la solution FileMaker Pro qui gère toute la chaîne de production de la société. Cette double saisie étant fastidieuse nous avons réfléchi à une solution qui permettrait d’automatiser la saisie dans la solution FileMaker Pro. Après avoir exporté les nouvelles commandes à saisir dans le dossier Documents de FileMaker Server 18, nous avons créé un système permettant d’importer toutes les données dans la base FileMaker. Il s’agissait alors de pouvoir supprimer les fichiers de commandes du dossier Documents après leur importation. Se posa alors le problème de permissions sur ces fichiers que nous ne pouvions supprimer directement par script avec la nouvelle fonction de suppression à cause des permissions d’accès du groupe « fmsadmin ». Pour solutionner ce problème nous avons créé un fichier de liste de propriétés ( .plist ) exécuté par le Launch Agents ( launchd ) de macOS. Son rôle est d’automatiquement donner les droits en lecture/écriture au groupe « fmsadmin » pour tous les fichiers nouvellement ajoutés au répertoire Documents de FileMaker Server 18.