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 :
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
, 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 ;
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.
•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 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é ;
•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.