Les fenêtres de type Carte n’étaient pas prises en charge par WebDirect avant FMS 19
La fenêtre de type Carte (Card Windows en anglais) a été introduite pour la première fois dans FileMaker (FM) 16. Depuis, beaucoup d’entre nous l’ont intégrée dans nos conceptions. À l’époque, elle était prise en charge par FileMaker Pro (FMP) mais pas par WebDirect.
Si nous essayons d’ouvrir une fenêtre de type Carte sur WebDirect avec FileMaker Server (FMS) 16, 17 et 18, le modèle s’ouvrira en taille de fenêtre complète, de la même façon que les autres styles de fenêtres se comportent sur WebDirect.
Dans FileMaker 19, à la demande générale, les fenêtres de cartes sont prises en charge sur WebDirect. Cependant, ce changement s’accompagne d’un problème qui peut casser nos solutions, comme cela est arrivé à un client. Dans cet article, je souhaite aborder ce problème et proposer une solution de contournement.
Les fenêtres de type Carte sur WebDirect ne sont (toujours) pas de vraies fenêtres
Sur WebDirect, techniquement, on ne peut afficher qu’une seule fenêtre par page. Lorsque nous essayons d’ouvrir une nouvelle fenêtre, WebDirect la traitera comme une fenêtre virtuelle, c’est-à-dire qu’il se souviendra de la mise en page de notre fenêtre originale, puis il naviguera vers la mise en page de la nouvelle fenêtre.
Lorsque nous fermons la nouvelle fenêtre, WebDirect revient à la disposition de notre fenêtre originale, mais il ne s’agit en fait que d’une seule fenêtre. Nous ne pouvons pas avoir deux fenêtres affichées côte à côte, et elles ne peuvent pas être de tailles différentes (elles auront la taille de la fenêtre de notre navigateur Web).
Maintenant, certains d’entre vous se disent peut-être que les fenêtres de type Carte sur WebDirect ne contredisent pas tout ce que je viens de dire ? Oui et non.
Si vous ne regardez que la présentation visuelle des fenêtres de type Carte sur WebDirect, elles semblent se comporter comme une deuxième fenêtre, mais elles ne sont toujours pas une fenêtre réelle. Elles ne se comportent pas indépendamment de la fenêtre principale qui se trouve derrière, et elles ne font que donner à un objet “pop-up” l’apparence et le comportement d’une carte. L’introduction de la fenêtre de type Carte dans WebDirect ne change rien au fait que WebDirect fonctionne en session unique.
Les fenêtres de type Carte se comportent-elles différemment sur WebDirect ?
Vous vous dites peut-être « si ça ressemble à un canard, si ça nage comme un canard et si ça fait coin-coin comme un canard… ».
Pourquoi me soucier de savoir si c’est une vraie fenêtre ou non ? Même si elles se ressemblent beaucoup, la fenêtre de type Carte de WebDirect se comporte différemment de la fenêtre de type Carte de FileMaker Pro ou de FileMaker Go.
Par exemple, si une carte est ouverte dans WebDirect, notre fenêtre principale en arrière-plan ne s’actualise pas tant que la carte n’est pas fermée, mais ce n’est pas ce qui risque de casser notre solution.
Voici le problème majeur : sur FileMaker Pro, nous pouvons ouvrir une fenêtre de type Carte puis utiliser les actions de script « Nouvelle fenêtre » pour ouvrir d’autres fenêtres qui ne sont pas des cartes. Toutes les nouvelles fenêtres que nous ouvrons flottent au-dessus de la fenêtre principale et de la fenêtre de type Carte. Nous pouvons les faire glisser, les redimensionner (si les options correspondantes ont été activées dans nos actions de script) et les fermer.
Cependant, nous ne pouvons pas faire cela sur WebDirect. Il en résulte un code d’erreur 03, la commande n’est pas disponible. Pourquoi cela pose-t-il un problème ?
Voici le problème
Ce comportement en lui-même n’est pas un gros problème. Si nous connaissons cette contrainte, nous concevrons notre solution autour d’elle. Il devient un problème si nous avons également l’habitude suivante :
Imaginez que nous sommes sur un modèle en train de saisir des données. Pour une raison quelconque, nous souhaitons créer ou modifier des enregistrements auxquels nous ne pouvons pas accéder directement à partir de notre modèle actuel, et nous ne voulons pas quitter notre modèle actuel, peut-être parce que nous ne voulons pas que l’écran clignote ou parce que nous ne voulons pas valider notre enregistrement. Que devons-nous faire ?
Certains d’entre nous vont probablement créer une relation pour accéder aux enregistrements qu’ils souhaitent modifier à partir de leur modèle actuel.
Beaucoup d’entre nous ont l’habitude de créer un script qui va créer une nouvelle fenêtre, se rendre sur le modèle cible, créer ou modifier ces enregistrements, puis fermer la nouvelle fenêtre. Voilà. Les données sont modifiées, et la mise en page/fenêtre actuelle est intacte.
Voyez-vous le problème ici ? Avec FM 19, nous ne pouvons pas ouvrir une autre fenêtre par-dessus une fenêtre de fiche dans WebDirect. L’action de script « Nouvelle fenêtre » au début de notre script de modification des données échouera, et le reste de notre script risque de s’exécuter dans un contexte totalement erroné. Imaginez qu’il y ait quelques enregistrements à supprimer ; là, nous avons un problème.
Mais ce n’est pas encore le pire des scénarios ; tant que nous n’exécutons pas notre solution sur WebDirect sans l’analyser et la tester au préalable, nous ne serons pas victimes de ce problème.
Alors où est le piège ?
Prenons un peu de recul. Plus tôt, j’ai mentionné que WebDirect ne prenait pas en charge l’option de fenêtre de type Carte avant FM 19. Si vous essayez d’ouvrir une carte dans WebDirect avant FM 19, la mise en page s’ouvrira dans la taille maximale de la fenêtre du navigateur, tout comme l’ouverture d’une nouvelle fenêtre avec d’autres options de fenêtre.
This is certainly not ideal, but this also doesn’t break anything (as depicted in this article Card Windows work in WebDirect. I know some of us have designed layouts smartly to look nice both on a small card on FMP and on a full-size browser window on WebDirect. We make this compromise to reuse our layouts for both FMP and WebDirect, and it is a solid approach.
At that time, if we also happened to adopt the « New Window » approach mentioned above for updating data not available from our current context, guess what? We would be fine, because in FileMaker16, 17, and 18, we can open a new window from these not-supported card windows.
Voici maintenant FileMaker 19. Nous sommes ravis de ne plus avoir à vivre avec l’aspect compromis de ces modèles ; nos solutions peuvent être beaucoup plus belles du jour au lendemain.
Mais ces cartes ont un rendu différent ; nous ne pouvons plus ouvrir une nouvelle fenêtre au-dessus d’elles. Nos scripts qui fonctionnaient auparavant s’exécutent maintenant dans le mauvais contexte. Notre excitation se transforme en horreur en une seconde, en voyant nos fiches être supprimées sous nos yeux (ce qui est arrivé à l’un de mes clients. Heureusement, nous avons essayé dans l’environnement des tests au lieu de l’environnement de production).
C’est ça le piège.
Voici la solution de contournement
La solution la plus simple que j’ai trouvée consiste à convertir les scripts qui modifient les données hors contexte pour qu’ils s’exécutent sur PSOS (Exécuter script sur serveur). Nous pouvons conserver la plupart des étapes du script. Nous devons ajouter une section qui peut recevoir et analyser les paramètres de script nécessaires et une section qui peut assembler et transmettre le résultat du script. Le reste est en grande partie correct. Nous pouvons même conserver l’action de script « Nouvelle fenêtre », car elle est prise en charge par le serveur.
Conclusion
Supposons que vous avez une solution qui est utilisée à la fois sur FMP et WebDirect, et que vous réutilisez beaucoup de ces modèles à la fois pour FMP et WebDirect, y compris les modèles créées pour les fenêtres de type Carte, et que vous avez l’habitude de modifier les données hors contexte en utilisant une nouvelle fenêtre. Dans ce cas, il est très facile d’être victime de ce problème.
Si cela ne vous concerne pas, tant mieux ! Allez de l’avant et profitez de la dernière version de FileMaker.
Si cela s’applique à vous, j’espère que la solution de contournement proposée vous sera utile. Si vous souhaitez en savoir plus sur nous, vous pouvez consulter nos cours de formation ou notre chaîne YouTube.
Cette technique est le résultat de nos explorations. Il se peut qu’elle ne s’adapte pas à vos besoins. Chaque technique a ses avantages et ses inconvénients et nous vous invitons à faire vos propres expériences et à tirer vos propres conclusions en fonction de votre situation.