Créer une boîte de dialogue de connexion à distance personnalisée

Traduit automatiquement de Deepl

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 :
blank

Et enfin, voici une structure d’application client fusionnée :
blank

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 !

Avatar
- Product Owner -Damien Fuzeau a rejoint l'équipe 4D Product en février 2019. En tant que Product Owner, il est en charge de la rédaction des user stories, puis de leur traduction en spécifications fonctionnelles. Son travail consiste également à s'assurer que les implémentations de fonctionnalités livrées répondent aux besoins des clients.Damien est diplômé de l'Université de Nantes en génie logiciel. Il a passé plus de 23 ans dans son ancienne entreprise, d'abord en tant que développeur (découverte de 4D en 1997), puis en tant que responsable de l'ingénierie et architecte logiciel. Cette société est un partenaire OEM de 4D et a déployé des logiciels d'entreprise basés sur 4D pour des milliers d'utilisateurs, sur des centaines de serveurs. Damien est donc habitué au développement et au déploiement 4D dans un contexte multi-langues.