À propos de l'exécution des scripts dans FileMaker Server et FileMaker Cloud

Les scripts se trouvant dans des fichiers hébergés par FileMaker Server et FileMaker Cloud 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 côté serveur

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 et FileMaker Cloud. 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 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.

    Copier
    Ouvrir fichier [Ouvrir (masqué): Non; "Sauvegarde de 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 dans FileMaker Server ou FileMaker Cloud, puis exécuter uniquement les actions prises en charge. Par exemple :

    Copier
    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 par FileMaker Server mais pas par 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. De plus, lorsqu'un client utilise l'action de script Exécuter script sur serveur qui exécute des sous-scripts dans un autre fichier, le fichier contenant les sous-scripts doit déjà être ouvert 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 utilisent le compte indiqué dans le programme.

  • Les scripts côté serveur ne peuvent pas forcer un client FileMaker à 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 et FileMaker Cloud.

  • 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 ou FileMaker Cloud ;

    • le script en cours d'exécution dépasse le temps maximal fixé dans le programme 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 ou l'Aide FileMaker Cloud.

  • 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 FileMaker Cloud, et non depuis le client.

  • Pour les scripts côté serveur, l'accès est restreint au dossier Documents et au dossier temporaire. Consultez la section Chemins d'accès dans les scripts côté serveur.

  • Dans les scripts côté serveur, les actions de script pour lesquelles l'option Avec boîte de dialogue est activée ne peuvent pas afficher les boîtes de dialogue et peuvent renvoyer une erreur. Pour éviter cette erreur, désactivez l'option Avec boîte de dialogue dans les scripts côté serveur.