Vous avez besoin de créer un dialogue de connexion 4D personnalisé ? Vous souhaitez connecter votre application client à différents serveurs ? Ce sont deux scénarios que 4D v18 vous permet de gérer. Ce billet de blog est pour vous si vous voulez créer un dialogue de connexion à distance personnalisé et le connecter à des serveurs 4D fusionnés. Continuez à lire !
Pourquoi devrais-je écrire mon propre dialogue de connexion ?
Il existe plusieurs cas d’utilisation pour modifier la boîte de dialogue de connexion intégrée de 4D :
- PERSONNALISATION
Vous souhaitez personnaliser le dialogue standard de connexion à distance au serveur.
- FILIALES MULTIPLES
Lorsque vous déployez votre application et créez plusieurs bases de données distinctes. Par exemple, une base de données différente pour chaque filiale d’un groupe. Dans la base de données de connexion, vous pouvez gérer les serveurs et les bases de données auxquels les utilisateurs peuvent se connecter et leur permettre de se connecter directement.
- BASE DE DONNÉES D’ARCHIVES
Une autre façon d’utiliser un dialogue personnalisé est de choisir à quelle base de données d’exercices archivés les utilisateurs peuvent accéder.
- PORTAIL D’APPLICATIONS
Si vous déployez plusieurs produits et souhaitez que vos utilisateurs utilisent une seule application « portail » pour se connecter à chaque produit.
Cas d’utilisation
Un éditeur de logiciels dispose d’une ferme de serveurs hébergée dans le cloud, chaque serveur correspondant à un besoin métier spécifique. Auparavant, ils déployaient autant d’applications distantes que le nombre d’utilisateurs pouvant accéder aux serveurs. Maintenant, ils peuvent déployer une seule application distante pour tous les serveurs avec une base de données « annuaire ». À l’aide de requêtes HTTP ou de bases de données distantes, chaque serveur envoie son état et ses informations de connexion au serveur « annuaire ». L’application fusionnée connectée peut alors interroger la base de données de l’annuaire, afficher une liste des serveurs disponibles et se connecter à l’un d’eux.
Comment faire ?
CRÉATION DE LA BASE DE DONNÉES DE CONNEXION
Tout d’abord, vous devez créer une base de données de connexion contenant votre propre dialogue de connexion. La commande OPEN DATABASE a été étendue pour permettre la connexion à un serveur 4D. Générez un fichier 4DLink contenant l’emplacement et le port du serveur, puis passez-le comme paramètre à la commande. L’application autonome arrêtera automatiquement son code et se connectera au serveur, devenant ainsi une application distante typique.
Voici un extrait de code provenant d’une boîte de dialogue de sélection de serveur où Form.selectedServer contient les informations relatives au serveur 4D :
If (Form.selectedServer#Null)
C_TEXT ($xml)
C_OBJECT ($link)
$xml :="<?xml version=\"1.0\" encoding=\"UTF-8\"?><database_shortcut is_remote=\"true\" server_database_name=\"FA_RemoteConnexionServ\" server_path=\""+Form.selectedServer.IP+ " : "+Form.selectedServer.portID+"\"/>"
$link :=Folder(fk user preferences folder).file("server.4dlink")
$link .setText($xml)
OPEN DATABASE ($link.platformPath)
End if
Lorsque votre base de données de connexion est prête, il ne vous reste plus qu’à construire une base de données compilée.
FUSION DE LA BASE DE DONNÉES CIBLE
Seules les applications clientes fusionnées peuvent se connecter aux serveurs fusionnés. C’est pourquoi nous avons développé un nouveau mécanisme dans le processus de construction de l’application pour permettre l’intégration de la base de données de connexion dans l’application client fusionnée.
Nous avons créé les nouvelles clés BuildApp, DatabaseToEmbedInClientWinFolder et DatabaseToEmbedInClientMacFolder, pour contenir les chemins de la base de données de connexion compilée. Ainsi, lors de la construction de l’application client/serveur finale, le processus de construction de l’application intégrera la base de données de connexion compilée dans l’application client et modifiera son nom.
Cette application peut fonctionner sans fichier de données ni licence. Toutefois, si vous avez besoin d’un fichier de données, vous pouvez placer un fichier « Default Data.4DD » dans un dossier « Default Data » à proximité de la structure compilée. Dans ce cas, la licence pour une application fusionnée autonome est intégrée pendant le processus de construction de l’application.
Il s’agit d’une structure d’application client fusionnée sans base de données intégrée (« client traditionnel ») :
Ceci est un exemple de clés BuildApp pour intégrer une application de connexion :
<DatabaseToEmbedInClientMacFolder>
::connectionApp_Build:Compiled Database:connectionApp :
</DatabaseToEmbedInClientMacFolder>
Ceci est une base de données de connexion compilée :
Et enfin, voici une structure d’application client fusionnée :
COMMENT CELA FONCTIONNE-T-IL ?
Au moment de l’exécution, l’application client fusionnée ouvrira la base de données de connexion intégrée et permettra ensuite à l’utilisateur de sélectionner le serveur fusionné auquel se connecter. Si un fichier de données par défaut est utilisé, il est en mode lecture seule.
Notez que le processus de mise à jour automatique à partir du serveur fusionné est toujours disponible. Lorsque l’application de connexion fusionnée se connecte au serveur, si sa version n’est pas dans la gamme du serveur, une mise à jour automatique est lancée comme elle le ferait si l’application était une application client fusionnée standard !