Automatisation de tâches grâce aux scripts
 
Automatisation de tâches grâce aux scripts
Les scripts permettent d'effectuer des tâches simples, telles que la configuration de l'orientation de l'impression, ou plus complexes, comme la préparation d'un publipostage personnalisé pour chaque client.
Par exemple, vous pouvez définir un ensemble complexe de tâches destiné à créer un email de remerciement pour les clients de votre base de données ayant procédé à des commandes au cours de la semaine précédente. Le script compose un email adapté à chaque client. Il active ensuite le mode Prévisualisation et marque une pause afin que vous puissiez voir à quoi ressemblera l’email avant qu’il ne soit envoyé. Vous initialisez la totalité de la tâche en cliquant sur un bouton du modèle Saisie des ventes.
Pour générer un script, effectuez une sélection dans la liste des commandes FileMaker Pro, appelées actions de script, puis définissez des options (si nécessaire) et déterminez l’ordre dans lequel ces actions doivent être effectuées.
Les scripts s'exécutent normalement sur le client, mais rien ne vous empêche d'exécuter certains d'entre eux sur FileMaker Server pour améliorer les performances ou respecter un programme. Consultez la section A propos de l'exécution des scripts dans FileMaker Server.
Elaboration d'un script
Plus vous prendrez de temps pour bien préparer la création de votre script, plus vous aurez de chance d'obtenir le résultat escompté. Au cours de l'élaboration, posez-vous les questions suivantes :
Pouvez-vous diviser ce travail en plusieurs tâches ? Le cas échéant, vous devez définir des sous-scripts pour chacune de ces tâches, puis définir un script qui exécute ces sous-scripts. Il est généralement plus aisé d'écrire et de tester plusieurs petits sous-scripts qu'un seul script plus complexe. Ces sous-scripts peuvent être réutilisés ailleurs (utilisez l'action de script Exécuter script pour exécuter un sous-script à l'intérieur d'un script).
Quelles actions de script doivent être exécutées et dans quelles conditions ? Toutes les actions de script doivent-elles être toujours exécutées ? Certaines doivent-elles être exécutées un certain nombre de fois jusqu'à ce qu'une certaine condition soit remplie ? Le script doit-il invoquer d'autres scripts et sous-scripts ? Vous pouvez contrôler la progression d'un script de diverses manières. Pour plus d'informations concernant la création de scripts avec des étapes conditionnelles, consultez la section Actions de script Contrôle.
Souhaitez-vous que le script s'exécute sur un modèle en particulier ? Etant donné que les scripts sont définis au niveau du fichier et qu'ils peuvent être invoqués depuis un modèle, vous devez vérifier que le script fonctionne dans le ou les modèles souhaités. Utilisez l'action de script Activer modèle pour modifier des modèles.
Le script doit-il s'appliquer à tous les enregistrements de la base de données, au jeu d'enregistrements trouvés ou uniquement à certains enregistrements ? (Utilisez les Actions de script des enregistrements trouvés pour inclure uniquement les enregistrements du jeu d'enregistrements trouvés sur lesquels vous souhaitez travailler.)
Toutes les données dont vous avez besoin figurent-elles dans un seul fichier de base de données ou le script devra-t-il faire appel à plusieurs fichiers ? Si vous utilisez plusieurs fichiers, lesquels doivent être ouverts par le script ? Dans quel fichier le ou les scripts doivent-ils être définis ? Dans la plupart des cas, un script doit être défini dans le fichier où se trouvent les données à traiter. Il vous faudra peut-être créer des scripts séparés pour chaque fichier dans les solutions de base de données avec plusieurs fichiers, selon la complexité de la tâche.
Avec quel enregistrement le script doit-il démarrer ? Par exemple, lorsque vous utilisez l'action de script Boucle, vous devez décider si la boucle démarre au premier enregistrement, au dernier enregistrement, à un enregistrement précis ou à l'enregistrement actif du jeu d'enregistrements trouvés. (Utilisez l'action de script Afficher enreg/requête/page, l'action de script Activer enregistrements liés ou l'action de script Activer rangée externe pour indiquer un enregistrement de départ. Si vous n'incluez pas une action de script Navigation pour déterminer l'enregistrement actif, le point de départ de la boucle est l'enregistrement actif au moment de l'exécution du script.)
Quelle fenêtre souhaitez-vous utiliser ? Un script est initialement associé à une fenêtre spécifique, qui peut se trouver à l'arrière-plan. Le script demeure sur cette fenêtre, tant que l'action du script active une autre fenêtre. Par exemple, utilisez l'action de script Sélectionner fenêtre pour indiquer une autre fenêtre. Si la fenêtre indiquée n'est pas disponible, le script active la fenêtre du fichier se situant au premier plan. Lorsque vous mettez un script en pause, la fenêtre associée passe au premier plan si elle est disponible. Consultez la section Actions de script Fenêtres.
Le script doit-il passer d'un mode à un autre ? Un script peut être lancé en mode Utilisation, Recherche, Modèle ou Prévisualisation. Assurez-vous que le mode activé au moment de l'exécution d'une action est correct. Par exemple, utilisez l'action de script Mode Utilisation pour modifier des données dans des rubriques et des enregistrements et utilisez l'action de script Mode Recherche pour définir ou exécuter une requête de recherche.
Remarque  Les scripts exécutés en mode Modèle basculent vers le mode Utilisation avant l'exécution.
De quelles rubriques et de quels modèles le script a-t-il besoin ? Certaines actions (comme l’action de script Activer rubrique et l’action de script Insérer texte) ont besoin de la présence d’une rubrique sur le modèle actif, ce qui n’est pas le cas pour d’autres (par exemple l’action de script Définir rubrique). Utilisez l’action de script Activer modèle pour passer à un modèle contenant les rubriques requises par votre script ou bien insérez les rubriques dans la zone grise située à droite du modèle afin qu’elles soient disponibles pour les actions de script, mais pas pour les utilisateurs.
Les enregistrements doivent-ils être traités dans un ordre précis ? Choisissez entre l'ordre de tri actif, un ordre de tri précis ou aucun tri (ordre de création des enregistrements). Utilisez l'action de script Trier enregistrements ou l'action de script Annuler tri des enreg. afin de saisir une boucle pour trier correctement vos enregistrements avant de les traiter.
Dans quel ordre le script doit-il traiter les différents enregistrements ou rubriques ? (Utilisez l'action de script Afficher enreg/requête/page, l'action de script Boucle, l'action de script Fin de boucle si et l'action de script Fin de boucle pour contrôler le traitement de plusieurs rubriques ou enregistrements.)
Quand le script doit-il s'achever ? Après que toutes les actions de script ont été exécutées ? Une fois qu'une certaine condition est remplie ? (Utilisez l'action de script Si, l'action de script Sinon si et l'action de script Sinon pour exécuter une tâche telle que l'action de script Fin de script lorsque le script rencontre une condition précise.)
Les utilisateurs doivent-ils avoir la possibilité d’arrêter le script pendant son exécution ? Le script contient-il un processus qui pourrait produire des données incomplètes ou inexactes si le script se terminait trop tôt ? Utilisez l’action de script Autor. annulation utilisateur pour contrôler si les utilisateurs peuvent arrêter un script.
Comment allez-vous tester votre script ? Utilisez l'action de script Suspendre/reprendre script pour faire une pause à des endroits prédéfinis de votre script. Afin de préserver les données originales, enregistrez un clone de votre base de données dans lequel vous définissez et testez votre script.
Remarque  Si vous utilisez FileMaker Pro Advanced, vous pouvez utiliser Script Debugger pour tester et dépanner vos scripts.
Comment les situations d'erreur sont-elles gérées (aucun enregistrement trouvé, par exemple) ? Vous pouvez capturer la dernière condition d’erreur rapportée par FileMaker Pro en utilisant la fonction Obtenir ( DernièreErreur ). Utilisez cette fonction ainsi que l'action de script Si, l'action de script Sinon si et l'action de script Sinon pour créer des scripts réagissant aux erreurs de l'utilisateur ou aux résultats inattendus. Pour un contrôle plus avancé, utilisez l'action de script Gestion erreurs pour supprimer les alertes d'erreur habituellement affichées par FileMaker Pro dans ces situations et les remplacer par des alertes personnalisées à l'aide de l'action de script Ouvrir boîte dial. person..
Tous les utilisateurs doivent-ils avoir l'autorisation d'exécuter tous les scripts ? Utilisez les jeux de privilèges pour contrôler l'accès des utilisateurs aux scripts ? Avec les jeux de privilèges, vous pouvez autoriser les utilisateurs à exécuter ou modifier des scripts individuels, aucun script ou tous les scripts. Vous pouvez également définir les privilèges par défaut de chaque jeu concernant les futurs scripts définis dans le fichier. Si un script est défini pour s'exécuter avec un accès intégral, il peut effectuer des étapes pour l'utilisateur alors que ces étapes ne sont normalement pas autorisées par les privilèges attribués. Consultez la section Création et modification de jeux de privilèges.
Comment les utilisateurs exécutent-ils le script ? Vous devez créer un bouton pour exécuter le script ou indiquer que le script est ajouté au menu Scripts. Il est également possible d'exécuter les scripts à partir de l'Espace de travail de script ou lorsqu'un déclencheur de script est activé. Par exemple, vous pouvez utiliser le déclencheur de script SurOuverturePremiereFenetre pour exécuter un script à l'ouverture de la base de données.
Une fois que vous avez étudié toutes ces questions, vous pouvez gérer des scripts dans votre base de données. Consultez la section Création et modification de scripts.
Rubriques connexes 
Page de référence des actions de script (liste alphabétique)
Page de référence des actions de script (liste des catégories)