FileMaker eNews - Edition Février 2011

 

Action 'Autoriser annulation utilisateur' et FileMaker Go

L'action de script Autoriser annulation utilisateur présente deux cas d'utilisation très précis dans FileMaker Pro :

  1. Lorsqu'elle est activée (par défaut), elle permet aux utilisateurs d'appuyer sur la touche Echap pour annuler un script en cours d'exécution à un point quelconque de son exécution ;
  2. Lorsqu'elle est désactivée, elle empêche l'utilisateur d'annuler un script en cours d'exécution et permet donc au script de poursuivre son exécution jusqu'à une condition Fin de script valable.

Généralement, le premier cas d'utilisation est destiné aux scripts pouvant être annulés en toute sécurité sans que les modifications de données ne génèrent d'état non fini. Le deuxième cas d'utilisation est destiné aux scripts qui modifient des données et qui ne doivent pas être interrompus pour que l'intégrité des données soit préservée. Les deux cas ont la même validité pour l'utilisation de l'option 'Autoriser annulation utilisateur' dans FileMaker Go. Toutefois, la plate-forme iOS étant légèrement différente des plates-formes FileMaker habituelles, l'utilisation de l'option 'Autoriser annulation utilisateur' dans FileMaker Go peut avoir des ramifications subtiles.

En date de rédaction de cet article, les appareils iOS n'incluent pas de claviers physiques et donc pas de touche Echap permettant d'annuler explicitement un script lorsque l'option 'Autoriser annulation utilisateur' est activée. Sur ces appareils, un simple appui sur l'écran (même un appui accidentel) pendant l'exécution d'un script entraîne l'interruption de ce dernier si l'option 'Autoriser annulation utilisateur' est activée. Dans FileMaker Pro, le script est immédiatement annulé, mais FileMaker Go affiche une alerte demandant à l'utilisateur de confirmer que l'annulation du script est effectivement l'action souhaitée. Si l'utilisateur ne répond pas à l'alerte sous quelques secondes, cette alerte disparaît automatiquement et le script se poursuit. Ainsi, pour qu'un utilisateur ne soit pas en mesure d'annuler un script intentionnellement ou accidentellement, vous devez désactiver l'option 'Autoriser annulation utilisateur'.

Toutefois, certaines actions de script n'étant pas prises en charge dans FileMaker Go, la désactivation systématique de l'option 'Autoriser annulation utilisateur' peut être problématique.
Lorsque l'option 'Autoriser annulation utilisateur' est désactivée, que l'option 'Gestion erreurs' est activée et que le script en cours d'exécution rencontre une action de script non prise en charge, FileMaker Go affiche une alerte identifiant l'action de script non prise en charge gênante. Toutefois, cette alerte ne permet pas à l'utilisateur d'annuler le script, il ne s'agit que d'une information. Lorsque l'option 'Autoriser annulation utilisateur' est activée et que l'option 'Gestion erreurs' est désactivée, FileMaker Go poursuit l'exécution au-delà des actions de script non prises en charge, sans même avertir l'utilisateur. Pour cette raison, il est particulièrement important de connaître les actions de script non prises en charge dans FileMaker Go et de tester intégralement les scripts hérités non créés spécialement pour FileMaker Go avant de les déployer avec des données de production.
Vous pouvez utiliser Obtenir(DernièreErreur) pour détecter les erreurs liées aux actions de script non prises en charge ; testez le code d'erreur 3 de commande non disponible et le code d'erreur 4 de commande inconnue.

L'un des autres aspects du déploiement iOS susceptible d'interrompre vos scripts, indépendamment de l'état de l'option 'Autoriser annulation utilisateur', est la réception des appels entrants sur un iPhone ou une pression sur le bouton d'accueil de tout appareil iOS. Ces événements sont prioritaires sur toutes les applications, ce qui entraîne leur arrêt immédiat. Dans le cas de FileMaker Go, cela signifie qu'un script en cours d'exécution est immédiatement annulé.
Si, dans ce cas précis, l'option 'Autoriser annulation utilisateur' est activée, FileMaker Go passe en mode hibernation au moment de la sortie de l'application. Ainsi, même si votre script est arrêté, la base de données est ouverte et restaurée à son état précédent lorsque vous relancez FileMaker Go. Si l'option 'Autoriser annulation utilisateur' est désactivée dans le cas d'une interruption d'événement iOS, le script en cours d'exécution est arrêté et FileMaker Go se ferme plutôt que de passer en mode hibernation.

Les liens suivants mènent aux documents et articles de la Base de connaissances FileMaker qui contiennent des informations supplémentaires sur l'option 'Autoriser annulation utilisateur', les stratégies de script et l'optimisation pour le déploiement de FileMaker Go :