Automatisation de tâches grâce aux scripts > Création et modification de scripts > A propos de l'exécution des scripts dans FileMaker Server
 
A propos de l'exécution des scripts dans FileMaker Server
Les scripts se trouvant dans des fichiers hébergés par FileMaker Server s'exécutent normalement sur le client. Toutefois, vous pouvez exécuter un script sur le serveur (script côté serveur) en utilisant :
une action de script Exécuter script sur serveur dans un script s'exécutant sur un client ;
un programme FileMaker Server (consultez l'Aide FileMaker Server).
Exécution différente des scripts dans FileMaker Server
Un script démarré par l'une des méthodes décrites ci-dessus est exécuté par le moteur de script FileMaker (FMSE), un composant de FileMaker Server. Le moteur FMSE est un client qui exécute chaque script dans une session séparée sur le serveur. En conséquence, les scripts côté serveur :
ne possèdent pas le contexte du client (modèle actif, jeu d'enregistrements trouvés, ordre de tri, enregistrement, valeurs de rubrique de type Global, valeurs de variables globales et locales) ;
Vous pouvez transmettre des informations sur le contexte du client à un script côté serveur en utilisant le paramètre de script de l'action de script Exécuter script sur serveur. Le script côté serveur peut utiliser ces informations dans des actions de script comme dans l'action de script Activer modèle et l'action de script Exécuter la recherche pour indiquer sur quel modèle et quel jeu d'enregistrements intervenir.
prennent en charge les paramètres et résultats de script jusqu'à 1 million de caractères ;
peuvent accéder à d'autres fichiers FileMaker Pro, uniquement quand les deux conditions suivantes sont vérifiées :
les fichiers se trouvent sur le même hôte,
les fichiers ont déjà été ouverts par le client qui a démarré le script côté serveur, ou ont déjà été configurés avec un nom et un mot de passe de compte indiqués dans la boîte de dialogue Options de fichier du fichier.
Les scripts côté serveur s'exécutent de la même façon, qu'importe la façon dont ils ont été démarrés, sauf dans les cas suivants :
Un client utilisant l'action de script Exécuter script sur serveur peut, s'il le souhaite, patienter jusqu'à la fin du script sur le serveur et utiliser la fonction Obtenir ( RésultatScript ) pour capturer le résultat.
Il est possible de définir un programme FileMaker Server qui met fin à l'exécution du script si la durée indiquée est dépassée.
Gestion des actions de script non prises en charge
De nombreuses actions de script sont prises en charge par le moteur FMSE. Toutefois, si vous tentez d'exécuter une action de script non prise en charge, vous obtenez l'erreur 3 (Commande non disponible). L'action de script non prise en charge est ignorée et vous passez à l'étape suivante. Pour gérer les actions non prises en charge, votre script peut utiliser l'action de script Si avec :
la fonction Obtenir ( DernièreErreur ), celle-ci étant située après une action pour vérifier si elle n'est pas prise en charge, puis exécuter les actions prises en charge à la place. Par exemple, l'action de script Ouvrir fichier n'est pas prise en charge par le moteur FMSE. Aussi, le script suivant qui s'exécute sur le serveur ignore cette action et renvoie « non pris en charge » dans le résultat.
Ouvrir fichier [Ouvrir (masqué): Non ; "Sauvegarde factures"]
Si [ Obtenir (DernièreErreur) = 3 ]
Fin de script [ Résultat de texte: "non pris en charge" ]
Fin de si
la fonction Obtenir ( VersionApplication ), celle-ci étant située avant d'autres actions pour vérifier si le script s'exécute sur FileMaker Server, puis exécuter uniquement les actions prises en charge. Par exemple :
Si [ Occurrences ( Obtenir (VersionAplication) ; "Serveur" ) > 0 ]
# Continuer avec étapes de script prises en charge par FMSE
Fin de si
Pour voir quelles actions de script sont prises en charge dans le moteur FMSE, ouvrez un script dans l'Espace de travail de script de FileMaker Pro, cliquez sur Bouton Compatibilité, puis sélectionnez Serveur. Les actions de script non prises en charge s'affichent dans une couleur différente. Vous pouvez également consulter le tableau des comptabilités de chaque action de script dans la section Page de référence des actions de script.
Raisons justifiant l'exécution d'un script sur le serveur
pour améliorer les performances tout en limitant le trafic sur le réseau entre le client et le serveur ;
pour décharger les clients plus lents des longues tâches et les transférer à un serveur plus rapide ;
pour permettre à des clients FileMaker Go d'exécuter des tâches qui exigent des plug-ins pris en charge sur FileMaker Server mais pas sur FileMaker Go ;
pour faire appel aux actions de script Importer enregistrements ou Exécuter SQL avec une source de données ODBC qui utilise le nom de source de données du serveur.
Remarques 
Si des enregistrements sont verrouillés par un client, les scripts côté serveur ne peuvent pas accéder aux données non validées ni modifier le contenu de ces enregistrements.
Le fait d'exécuter ces scripts côté serveur ouvre et ferme les fichiers contenant les scripts. Ainsi, le déclencheur de script SurOuverturePremiereFenetre est activé au démarrage du script tandis que le déclencheur de script SurFermetureDerniereFenetre l'est à la fin du script.
Les scripts côté serveur peuvent utiliser l'action de script Exécuter script pour exécuter des sous-scripts lesquels s'exécutent également sur le serveur, uniquement si ces sous-scripts se trouvent dans des fichiers du même serveur et sont déjà ouverts par le client.
Les scripts exécutés par Exécuter script sur serveur utilisent le même compte que le client. Les scripts exécutés par un programme FileMaker Server utilisent le compte indiqué dans le programme (consultez l'Aide FileMaker Server). Le privilège étendu fmapp du jeu de privilèges du compte doit être activé. Consultez la section Modification de privilèges étendus pour un jeu de privilèges.
Les scripts côté serveur ne peuvent pas forcer un client à afficher des messages d'alerte FileMaker comme quand les scripts s'exécutent sur les clients. Aussi, les scripts côté serveur s'exécutent toujours comme si l'action de script Gestion erreurs était activée. Utilisez la fonction Obtenir ( DernièreErreur ) dans les scripts côté serveur pour gérer les conditions d'erreur. Pour aider à résoudre les problèmes, les erreurs sont également consignées dans le journal des événements de FileMaker Server.
Les clients ne peuvent pas arrêter les scripts côté serveur. Toutefois, il est possible d'arrêter un script côté serveur si :
un administrateur serveur arrête le script, lequel apparaît comme un client à part déconnecté de l'Admin Console de FileMaker Server ;
le script en cours d'exécution dépasse le temps maximal fixé dans le programme FileMaker Server qui l'a démarré ;
le script rencontre une action de script inconnue (consultez l'action de script Autor. annulation utilisateur).
Consultez l'Aide FileMaker Server.
Dans les scripts côté serveur, les fonctions liées au matériel, comme Obtenir ( AdresseIPSystème ), renvoient des informations depuis le composant serveur de base de données de FileMaker Server, et non depuis le client.