4D v16Configuration de l’application Wakanda |
||||||||||||||||||||||||||||||||
|
4D v16
Configuration de l’application Wakanda
Configuration de l’application Wakanda
Côté Wakanda Enterprise, la connexion à une base 4D peut s’effectuer :
Une fois la liaison établie entre Wakanda et 4D, l’application Wakanda peut utiliser les tables, attributs et méthodes projet exposés de l’application 4D comme des objets locaux. Il est possible d’exécuter du code JavaScript supplémentaire afin, par exemple, de modifier localement les propriétés des attributs distants, d’étendre les classes, ou encore d’ajouter des attributs calculés. Dans Wakanda Enterprise Studio, la commande Connect to Remote Datastore... (disponible dans le menu File ainsi que dans le menu contextuel du projet) vous permet d'ouvrir une liaison avec un datastore distant. Ce datastore distant peut être une base 4D ou une autre application Wakanda. Dans les deux cas, le serveur HTTP du datastore distant doit être démarré pour que Wakanda Enterprise Studio puisse accéder au modèle distant. Lorsque vous sélectionnez la commande Connect to Remote Datastore..., la boîte de dialogue de connexion apparaît : Elle contient les paramètres de connexion suivants :
Lorsqu'une connexion est établie entre Wakanda et 4D Server via la boîte de dialogue "Connect to a Remote Datastore", Wakanda Enterprise Studio crée automatiquement deux fichiers (icônes comportant une flèche rouge) dans le dossier du projet :
Note : Vous pouvez visualiser les extensions des fichiers dans l'infobulle qui apparaît lorsqu'ils sont sélectionnés dans l'Explorer de Wakanda Studio. Wakanda Enterprise Server vous permet d'établir une liaison avec une base 4D en exécutant une méthode JavaScript. La méthode de connexion doit généralement être placée dans le code qui s'exécute à l'ouverture de l'application (bootstrap.js) ou du modèle (model.js) afin que la liaison soit disponible lors de chaque session. Trois méthodes vous permettent d'établir une liaison 4D Mobile :
La principale différence entre ces méthodes se situe au niveau du mode d'intégration des objets provenant du datastore distant dans l'application Wakanda : model.mergeOutsideCatalog() fusionne le catalogue distant avec le modèle actif tandis que addRemoteStore() et openRemoteStore() génèrent des modèles dédiés. Pour plus d'informations sur ce point, reportez-vous au paragraphe Intégrer au modèle actif ou utiliser un modèle dédié ci-dessous. La méthode JavaScript mergeOutsideCatalog() permet de désigner un catalogue de données distant et de le fusionner au sein de votre modèle Wakanda courant. Cette méthode doit être appelée dans le fichier .js associé au modèle courant et exécuté par le serveur Wakanda. Deux syntaxes sont possibles :
L’avantage de la syntaxe avec objet est qu’elle autorise l’ajout d’un fichier .js qui sera exécuté à l’issue de la connexion à la base 4D. Ce fichier permet de modifier localement le catalogue référencé depuis la base distante.
Pour une description plus détaillée, reportez-vous à la documentation de la méthode mergeOutsideCatalog() dans le manuel Server-side API de Wakanda. L’objet model désigne le "modèle" courant de l’application Wakanda, c’est-à-dire l’ensemble de ses "datastore classes" (tables) et méthodes. Dans le contexte d’une architecture 4D Mobile, le modèle Wakanda peut être vide. Si l’application Wakanda contient déjà des objets, les classes et méthodes référencées depuis l’application 4D distante sont fusionnées au modèle local lorsque vous utilisez la méthode mergeOutsideCatalog(). Lorsque la connexion est établie avec succès, les tables 4D "exposées" sont ajoutées aux classes du modèle côté Wakanda. Dans Wakanda Enterprise Studio, elles apparaissent parmi les classes du modèle local, identifiées par une petite flèche rouge. Le catalogue externe est également représenté dans Wakanda Studio par un catalogue spécifique (nommé nomLocal.waRemoteCatalog) signalé par une petite flèche rouge : Note: Les extensions de fichier peuvent être masquées dans Wakanda Studio. Vous pouvez double-cliquer sur ce fichier pour visualiser le catalogue externe dans l’éditeur de modèles de Wakanda Studio :
Les méthodes openRemoteStore() et addRemoteStore() constituent des moyens alternatifs d’établir des connexions dynamiques entre une application Wakanda et une application 4D. Comme mergeOutsideCatalog(), ces méthodes permettent d’accéder dynamiquement aux données des bases 4D mais leur fonctionnement est différent :
openRemoteStore() retourne une référence valide uniquement dans le contexte JavaScript courant, tant que addRemoteStore() maintient la référence durant toute la session. Pour plus d’informations, reportez-vous à la description des méthodes openRemoteStore() et addRemoteStore() dans la documentation de Wakanda. Quel que soit le mode de connexion avec le datastore 4D distant (boîte de dialogue "Connect to Remote Datastore" de Wakanda Studio ou exécution d'une méthode JavaScript), vous devez choisir si les classes (tables) distantes doivent être fusionnées avec le modèle actif ou si elles doivent être placées dans un modèle dédié. Cette alternative est résumée dans le tableau suivant :
Lorsque vous fusionnez les tables 4D distantes avec le modèle actif, elles sont intégrées au modèle par défaut de l'application (dont le datastore est l'objet ds), comme les classes locales. Les principes d'accès aux données sont les suivants :
Ces principes facilitent le développement des applications 4D Mobile mais peuvent entraîner des conflits de noms entre les tables, notamment lorsque l'application Web fait appel à plusieurs datastores distants. Dans ce cas, il peut être utile de placer les éléments distants dans un modèle dédié. Lorsque les tables 4D distantes ne sont pas fusionnées avec le modèle actif, elles utilisent un modèle "dédié". Les classes distantes utilisent alors un espace de nommage qui est propre au datastore auquel l'application est connectée, elles ne sont pas accessibles dans l'objet ds. Il est alors possible d'utiliser simultanément plusieurs tables du même nom dans plusieurs datastores différents :
Ce principe comporte toutefois des limitations dans la version actuelle de Wakanda Enterprise :
Il est donc généralement conseillé de choisir le mode fusionné pour les datastores distants, si votre application cliente doit accéder directement aux données des tables 4D distantes. Wakanda Enterprise vous permet de modifier certaines caractéristiques de la version locale du modèle externe, dans un but de personnalisation, d’optimisation ou de sécurisation. Pour cela, il vous suffit d'ajouter du code JavaScript approprié dans un fichier .js ayant le même nom local du catalogue avec le suffixe .js et placé dans le même dossier que le modèle. Par exemple, si le nom du catalogue local est Emp4D.waRemoteModel, vous devez utiliser un fichier nommé Emp4D.js placé dans le dossier du modèle. Notes :
Ce fichier est exécuté par Wakanda à l’initialisation du catalogue externe. A l’aide de ce fichier, vous pouvez notamment :
Pour plus d’informations sur le code JavaScript de manipulation des modèles, reportez-vous au chapitre Model API dans la documentation de Wakanda. Vous pouvez définir des permissions spécifiques à Wakanda Server globalement pour le modèle distant et/ou individuellement pour chaque classe. Pour plus d'informations sur ce point, reportez-vous à la section Assigning Group Permissions dans la documentation de Wakanda.
Voir aussi
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
UTILISATION DE L'ARTICLE
4D Mobile ( 4D v16) |
||||||||||||||||||||||||||||||