version 6.5 (Modifiée)
Exemple en mode contextuel
Cette section présente un exemple simple de publication instantanée d'une base de données en mode contextuel. Ce mode automatique peut notamment être utilisé pour les serveurs Intranet. Il permet d'illustrer les principes élémentaires de fonctionnement du serveur Web de 4D. Le fonctionnement et la structure de cette base sont classiques : la base comporte une table, un formulaire entrée, un formulaire sortie et une barre de menus. La page d'accueil est personnalisée.
Lorsqu'un navigateur se connecte au serveur Web 4D, il obtient la page d'accueil suivante :
Si vous cliquez sur le lien 'Liste des enregistrements', vous obtenez l'équivalent de l'affichage d'une sélection 4D sur le Web :
Vous pouvez dès lors naviguer à votre convenance parmi les enregistrements. Lorsque vous cliquez sur le bouton 'Terminé', vous retournez à la page d'accueil du site Web.
Si vous cliquez sur le lien 'Ajouter des enregistrements' dans la page d'accueil, vous obtenez l'équivalent d'un ajout d'enregistrement 4D sur le Web :
Vous pouvez ajouter autant d'enregistrements que vous voulez. Lorsque vous cliquez sur le bouton 'Terminé' (celui avec le "X") vous retournez à nouveau à la page d'accueil du site Web.
Si vous cliquez sur le bouton Barre de menus principale dans la page d'accueil, vous obtenez la barre de menus créée de 4D sur le Web :
Vous pouvez alors cliquer sur une commande de menu pour visualiser ou ajouter des enregistrements. Les méthodes 4D associées à ces commandes de menu sont les mêmes que celles qui étaient utilisées à partir de la page d'accueil.
Lorsque vous avez terminé, vous quittez le navigateur. 4D terminera la connexion Web dès que le délai d'attente avant déconnexion se sera écoulé.
Démarrage d'une connexion Web en mode contextuel
Chaque fois qu'un navigateur Web se connecte à une base 4D publiée en tant que serveur Web en mode contextuel, 4D effectue par défaut les actions suivantes :
La Méthode base Sur authentification Web est exécutée, si elle existe.
Si cette méthode base n'existe pas ou si elle retourne Vrai, la Méthode base Sur connexion Web est exécutée, si elle existe.
Si cette méthode base n'existe pas ou si son exécution est terminée, 4D affiche la page d'accueil par défaut définie dans les Préférences de la base, s'il y en a une.
Si aucune page d'accueil par défaut n'est définie, 4D affiche la barre de menus courante (par défaut, la barre de menus n°1), si elle existe.
S'il n'y a pas de page d'accueil par défaut ni de barre de menus définie dans la base, 4e Dimension affiche une page de Web qui indique :"Cette base n'a pas encore été configurée pour le Web".
Cette séquence est résumée dans le schéma suivant :
La Méthode base Sur connexion Web peut appeler toute méthode ou tout formulaire défini(e) dans la base, ainsi que des pages HTML. En définitive, cette méthode base peut gérer la totalité de la session.
Une connexion Web à 4D ou 4D Server n'est pas de même nature qu'une connexion client/serveur. Le protocole HTTP, qui supporte HTML et le Web, n'est pas un protocole basé sur la session. C'est plutôt un protocole basé sur la requête. En client/serveur, vous vous connectez, effectuez une session de travail, et finalement vous vous déconnectez du serveur. Avec HTTP, chaque fois que vous réalisez une action qui nécessite l'attention ou une action du serveur Web, une requête est envoyée au serveur. Pour résumer, une requête HTTP peut être considérée comme une séquence connexion+requête+attente de réponse+déconnexion.
En mode contextuel, pour maintenir une session client/serveur réelle par l'intermédiaire de HTTP, par défaut 4D gère pour vous, via un encodage transparent des URLs, des contextes qui identifient de façon unique chaque connexion Web, et en même temps associent la connexion au process 4D qui la gère. Dans ce mode toutefois, 4D ne peut pas terminer une "session de requêtes" Web de la même manière qu'une session client/serveur standard. C'est pour cette raison que la clôture de ces sessions client/serveur est gérée par un système de temporisation (timeout). Le process 4D qui gère la connexion Web est tué lorsque la période d'inactivité maximale autorisée pour la base est atteinte.
Base de données et serveur Web à la fois
Une session de serveur Web 4D peut être entièrement gérée à l'aide des barres de menus, formulaires et méthodes 4D en mode contextuel. Dans l'exemple précédent, la visualisation et l'ajout des enregistrements étaient effectués par l'intermédiaire de méthodes et formulaires 4D simples. Si nous n'avions pas inclus de page d'accueil en HTML, la barre de menus n°1 aurait été directement affichée lors de la connexion Web.
Si nous mettons de côté la page HTML d'accueil, la construction d'un serveur Web qui supporte les transactions de la base client/serveur revient à développer une base 4D comme sous Windows ou Mac OS, en mono ou multi-utilisateur.
Voici la structure de la base exemple :
Pour visualiser les enregistrements, les formulaires entrée et sortie suivants ont été créés :
Pour travailler avec les menus personnalisés et gérer les connexions Web, la barre de menus n°1 suivante a été créée :
Les deux méthodes projet suivantes ont été écrites :
`Méthode projet M_ADD_RECORDS C_TEXTE($1) ` Ce paramètre DOIT être explicitement déclaré Repeter AJOUTER ENREGISTREMENT ([Clients]) Jusque (OK=0)
`Méthode projet M_LIST_RECORDS C_TEXTE($1) ` Ce paramètre DOIT être explicitement déclaré TOUT SELECTIONNER ([Clients]) MODIFIER SELECTION([Clients])
L'option "Démarrer un process" a été associée à chaque méthode dans l'éditeur de menus.
Le serveur Web démarre en mode contextuel et une page d'accueil par défaut est définie dans les Préférences de la base :
La page d'accueil contient deux liens, "Ajouter des enregistrements" et "Liste des enregistrements", qui déclenchent l'exécution des méthodes projet 4D M_ADD_RECORDS et M_LIST_RECORDS par l'intermédiaire de leurs URLs. La convention est simple : tout objet HTML comportant un lien peut appeler une méthode projet de votre base par l'URL "/4DMETHOD/Nom_de_votre_Méthode".
L'attribut Disponible via 4DACTION, 4D METHOD et 4D SCRIPT doit être associé à chaque méthode appelée via 4DMETHOD :
Une fois ces liens définis, 4D exécute la méthode projet spécifiée après le mot-clé /4DMETHOD/ lorsqu'un navigateur Web retourne l'URL. Ensuite, lorsque la méthode projet se termine, vous retournez à la page HTML qui a lancé son exécution. Notez que la méthode projet peut elle-même appeler des formulaires 4D, d'autres pages HTML, et ainsi de suite.
Votre site Web 4D peut être un système basé entièrement sur 4D ou un mélange de formulaires 4D et de pages HTML. Si vous utilisez des pages HTML dans votre base 4D, vous bénéficiez des deux environnements : 4D et HTML. Mais rappelez-vous que vous n'êtes absolument pas obligé d'utiliser des pages HTML, si vous le souhaitez !
La page d'accueil HTML utilisée dans l'exemple comprend également un bouton. Il existe trois types de boutons HTML : normal, submit et reset. Un bouton "normal" peut se voir attribuer un URL qui fait référence à une méthode 4D à l'aide du mot-clé /4DMETHOD/. Les boutons "reset" ne sont guère utiles dans un développement 4D : ils effacent les valeurs éventuellement saisies par l'utilisateur dans un formulaire et n'envoient pas de requête au serveur. Les boutons "submit" retournent le formulaire au serveur Web avec les valeurs éventuellement saisies par l'utilisateur. Lors de l'intégration des pages HTML dans 4D, vous utiliserez généralement des boutons de type "normal" ou "submit". Les boutons de type "normal" servent à naviguer parmi les pages et les boutons de type "submit" servent à gérer la saisie de valeurs à partir de pages HTML lorsque vous ne souhaitez pas utiliser pour cela de formulaires 4D standard. Le code du bouton de la page d'accueil est le suivant : INPUT TYPE="SUBMIT" NAME="/4DMETHOD/GO_MAIN_MENUBAR"
Pour gérer l'envoi du formulaire HTML du côté du serveur Web 4D, vous devez spécifier l'action POST pour la méthode 4D qui sera exécutée par 4D dès réception du formulaire.
Pour cela, il doit contenir la ligne FORM ACTION="/4DMETHOD/GO_MAIN_MENU_BAR" METHOD="POST"
La méthode projet GO_MAIN_MENU_BAR est la suivante :
FIXER PAGE ACCUEIL("")
Cette méthode n'a qu'un objectif : ne plus afficher la page d'accueil par défaut, et donc envoyer la barre de menus courante. 4D affiche alors la barre de menus n°1 de votre base.
C'est tout !
En moins de cinq minutes, lorsque vous créez une base 4D, elle peut être utilisée localement ou comme serveur Web que vous pouvez publier sur votre réseau Intranet ou sur Internet.
Référence
ARRETER SERVEUR WEB, ENVOYER FICHIER HTML, FIXER LIMITES AFFICHAGE WEB, FIXER TEMPORISATION WEB, LANCER SERVEUR WEB.