DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Gestion de la réplication / Réplication universelle
  • Présentation
  • Base de données HFSQL Classic : Mise en place de la réplication par programmation
  • Etape 1 : Programmation de l'accès aux fichiers HFSQL Classic en local
  • Etape 2 : Description de la réplication
  • Etape 3 : Programmation de la réplication
  • Etape 4 : Déploiement de l'application
  • Base de données HFSQL Client/Serveur : Mise en place de la réplication par programmation
  • Etape 1 : Programmation de l'accès aux fichiers en local
  • Etape 1 bis : Utilisation de base de données non HFSQL
  • Etape 2 : Description de la réplication
  • Etape 3 : Programmation de la réplication
  • Etape 4 : Déploiement de l'application
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
La réplication assistée par programmation permet de mettre en place une réplication sur une application existante, en maîtrisant dans l'application elle-même la synchronisation. L'utilisateur lance la synchronisation directement par l'application, sans passer par une application externe.
La réplication assistée par programmation permet d'utiliser tous les modes de réplication disponibles :
  • réplication directe,
  • réplication par serveur avec réplica immédiat ou périodique.
Base de données HFSQL Classic : Mise en place de la réplication par programmation
WINDEVWEBDEV - Code ServeurHFSQL Classic

Etape 1 : Programmation de l'accès aux fichiers HFSQL Classic en local

Si une application utilise la réplication universelle assistée, elle accède à une base locale, contenant uniquement les données nécessaire. La base de données générale (base maître) est utilisée uniquement lors de la synchronisation.
Il est donc nécessaire de modifier l'application pour qu'elle puisse accéder aux fichiers de données locaux. Il est nécessaire de programmer :
  • la création si nécessaire des fichiers locaux.
  • l'accès à ces fichiers locaux (par exemple avec les fonctions HChangeRep, HSubstRep, HChangeNom, ...).
WINDEVWEBDEV - Code ServeurHFSQL Classic

Etape 2 : Description de la réplication

La description de la réplication est réalisée dans un fichier ".WER" créé par ReplicEdit. ReplicEdit permet de :
WINDEVWEBDEV - Code ServeurHFSQL Classic

Etape 3 : Programmation de la réplication

L'initialisation de la base locale est réalisée à la première synchronisation de l'application avec la base maître. La base maître est localisée dans le fichier WER généré avec ReplicEdit.
Cas d'une réplication assistée directe : Un exemple de code pouvant être utilisé est le suivant :
// Initialise la réplication en passant le numéro du département à prendre en compte
SI RéplicInfo("MaRéplication", replicInitialisée) = Faux ALORS
RéplicInitialise("MaRéplication", 47012)
FIN
 
// Lance la synchronisation
RéplicSynchronise("MaRéplication")
L'initialisation de la base de données locale doit être réalisée une seule fois avec la fonction RéplicInitialise.
Par la suite, seule une synchronisation des données est nécessaire (fonction RéplicSynchronise)
Cas d'une réplication assistée avec serveur de réplication : Si vous effectuez une réplication assistée avec serveur de réplication, il est nécessaire d'utiliser la fonction RéplicOuvre avant la fonction RéplicInitialise pour spécifier les paramètres du serveur de réplication. Exemple :
// Ouvre la réplication sur le serveur de réplication
RéplicOuvre("MaRéplication", "", "ServeurReplication", "Florence", "motpasse")
 
// Initialise la réplication en passant le numéro du département à prendre en compte
SI RéplicInfo("MaRéplication", replicInitialisée) = Faux ALORS
RéplicInitialise("MaRéplication", 47012)
FIN
 
// Lance la synchronisation
RéplicSynchronise("MaRéplication")
WINDEVWEBDEV - Code ServeurHFSQL ClassicOLE DB

Etape 4 : Déploiement de l'application

La préparation du programme d'installation est réalisée comme pour une application classique.
Important : Lors de la création du programme d'installation, vous ne devez pas demander à installer la réplication assistée (décochez l'option "Installer et paramétrer les modules de réplication universelle assistée").
Rappel : Pour créer le programme d'installation, sous le volet "Projet", dans le groupe "Génération", déroulez "Procédure d'installation" et sélectionnez "Créer la procédure d'installation".
Réplication assistée directe (sans serveur de réplication) : Il est nécessaire d'intégrer le fichier .WER aux fichiers installés par l'application. Le fichier .WER doit contenir toutes les caractéristiques des chemins aux fichiers de données maître utilisés par l'application. Il n'est pas possible d'inclure le fichier .WER dans la bibliothèque (fichier WDL).
Si lors de la création du fichier .WER, la localisation des fichiers de données de la base maître n'est pas connue, il est nécessaire de l'indiquer pour chaque poste client installé. Cette opération peut être réalisée :
  • directement sur le poste du client. Il suffit de distribuer l'outil ReplicEdit. Cependant, l'utilisateur aura accès à toutes les caractéristiques de la réplication. Cette solution peut poser des problèmes de sécurité.
  • par le développeur, le client lui indiquant le chemin de la base de données maître. Le fichier .WER est ensuite transmis au client pour mise à jour.
Réplication assistée avec serveur de réplication : Si vous effectuez une réplication assistée avec serveur de réplication, le fichier .WER doit être déployé sur le serveur de réplication avec tous les renseignements concernant la base de données maître. Pour plus de détails, consultez Serveur de Réplication Universelle Assistée.
Base de données HFSQL Client/Serveur : Mise en place de la réplication par programmation
WINDEVWEBDEV - Code ServeurHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Etape 1 : Programmation de l'accès aux fichiers en local

Si une application utilise la réplication universelle assistée, elle accède à une base locale contenant uniquement les données nécessaires. La base de données générale (base maître) est utilisée uniquement lors de la synchronisation.
Il est donc nécessaire de modifier l'application pour qu'elle puisse accéder aux fichiers de données locaux. Il est nécessaire de programmer :
  • la création si nécessaire des fichiers locaux.
  • l'accès à ces fichiers locaux.
Le principe à utiliser est simple :
  • Définition de connexions au niveau de l'analyse : Les connexions doivent être décrites au niveau de l'analyse. Chaque fichier est associé à une connexion.
  • Configuration des connexions avec ReplicEdit : L'outil ReplicEdit va permettre de configurer ces connexions afin d'accéder aux bases de données maître.
  • Programmation de l'accès aux fichiers locaux : Le code de l'application permettra simplement de basculer chaque connexion vers une connexion HFSQL Classic, qui permettra d'utiliser les fichiers en local.
Mise en place : Si votre application utilise des fichiers de données nécessitant une connexion ou plusieurs connexions (HFSQL Client/Serveur, accès natifs, fichiers OLE DB, ...) : il est conseillé de réaliser les manipulations suivantes :
  • sous l'éditeur d'analyses : si vos fichiers ne sont pas associés à des connexions, créez autant de connexions de test que nécessaire. Par exemple, si vous utilisez des données HFSQL Client/Serveur et des données Oracle, vous définissez deux connexions de test dans l'analyse.
  • dans votre code, modifiez les connexions associées aux fichiers : il suffit de modifier les paramètres des connexions de test pour manipuler des fichiers HFSQL Classic locaux. Par exemple, le code suivant permet de définir une connexion locale sur des fichiers HFSQL :
    HOuvreConnexion("HF_local", "", "", "", "", hAccèsHF7)
    HChangeConnexion("*", "HF_local")
WINDEVWEBDEV - Code ServeurHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Etape 1 bis : Utilisation de base de données non HFSQL

Pour mettre en place la réplication universelle assistée sur des bases de données différentes (Oracle, ...), il est nécessaire de créer une rubrique de type DateHeure dans chaque fichier pris en compte par la réplication. Cette rubrique devra être mise à jour par l'application lors de la modification ou lors de l'ajout d'un enregistrement.
Si les bases de données utilisent différents fuseaux horaires, il est conseillé d'utiliser un format universel (date et heure GMT par exemple).
Exemple : Gestion d'une rubrique spécifique pour la réplication entre une base de données HFSQL et une base de données MySQL :
Un trigger est mis en place pour renseigner automatiquement la rubrique "Rub_DateHeure" présente dans la base MySQL :
  • Code du trigger
    ResultatTrigger est un booléen
    ResultatTrigger = HDécritTrigger("*", "HAJOUTE,HMODIFIE,HSUPPRIME,HRAYE,HECRIT", "AjoutDateHeure", hTriggerAvant)
    SI ResultatTrigger = Faux ALORS Erreur(HErreurInfo())
  • Procédure appelée par le trigger
    PROCÉDURE AjoutDateHeure()
    TestReplic.Rub_DateHeure = DateSys() + HeureSys()
WINDEVWEBDEV - Code ServeurHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Etape 2 : Description de la réplication

La description de la réplication est réalisée grâce à ReplicEdit. Cet outil permet de :
  • définir les fichiers pris en compte par la réplication, les filtres pris en compte lors de la mise à jour des données. Pour plus de détails, consultez Créer une réplication avec ReplicEdit.
  • paramétrer la localisation des fichiers maîtres. Il suffit de redéfinir les connexions de l'analyse. La liste des connexions est donnée par l'option "Réplication .. Description des connexions" de ReplicEdit. Pour plus de détails, consultez Options de réplication définies dans ReplicEdit.
Ces informations sont enregistrées dans un fichier ".WER" créé par ReplicEdit.
WINDEVWEBDEV - Code ServeurWindowsHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Etape 3 : Programmation de la réplication

L'initialisation de la base locale est réalisée à la première synchronisation de l'application avec la base maître. Les connexions à la base maître sont définies dans le fichier WER généré avec ReplicEdit.
Cas d'une réplication assistée directe : Un exemple de code pouvant être utilisé est le suivant :
// Initialise la réplication en passant le numéro du département
// à prendre en compte
SI RéplicInfo("MaRéplication", replicInitialisée) = Faux ALORS
RéplicInitialise("MaRéplication", 47012)
FIN
 
// Lance la synchronisation
RéplicSynchronise("MaRéplication")
L'initialisation de la base de données locale doit être réalisée une seule fois avec la fonction RéplicInitialise.
Par la suite, seule une synchronisation des données est nécessaire (fonction RéplicSynchronise)
Cas d'une réplication assistée avec serveur de réplication : Si vous effectuez une réplication assistée avec serveur de réplication, il est nécessaire d'utiliser la fonction RéplicOuvre avant la fonction RéplicInitialise pour spécifier les paramètres du serveur de réplication.
// Ouvre la réplication sur le serveur de réplication
RéplicOuvre("MaRéplication", "", "ServeurReplication", "Florence", "motpasse")
 
// Initialise la réplication en passant le numéro du département
// à prendre en compte
SI RéplicInfo("MaRéplication", replicInitialisée) = Faux ALORS
RéplicInitialise("MaRéplication", 47012)
FIN
 
// Lance la synchronisation
RéplicSynchronise("MaRéplication")
WINDEVWEBDEV - Code ServeurHFSQL Client/ServeurOLE DBConnecteurs Natifs (Accès Natifs)

Etape 4 : Déploiement de l'application

La préparation du programme d'installation est réalisée comme pour une application classique. Il est nécessaire d'intégrer le fichier .WER aux fichiers installés par l'application. Le fichier .WER doit contenir toutes les caractéristiques des connexions aux bases de données maître utilisées par l'application.
Important : Lors de la création du programme d'installation, vous ne devez pas demander à installer la réplication assistée (décochez l'option "Installer et paramétrer les modules de réplication universelle assistée").
Rappel : Pour créer le programme d'installation, sous le volet "Projet", dans le groupe "Génération", déroulez "Procédure d'installation" et sélectionnez "Créer la procédure d'installation".
Réplication assistée directe (sans serveur de réplication) : Il est nécessaire d'intégrer le fichier .WER aux fichiers installés par l'application. Le fichier .WER doit contenir toutes les caractéristiques des chemins aux fichiers de données maître utilisés par l'application. Il n'est pas possible d'inclure le fichier .WER dans la bibliothèque (fichier WDL).
Si lors de la création du fichier .WER, les paramètres des connexions aux bases maître ne sont pas connus, il est nécessaire de les indiquer pour chaque poste client installé. Cette opération peut être réalisée :
  • directement sur le poste du client. Il suffit de distribuer l'outil ReplicEdit. Cependant, l'utilisateur aura accès à toutes les caractéristiques de la réplication. Cette solution peut poser des problèmes de sécurité.
  • par le développeur, le client lui indiquant le chemin de la base de données maître. Le fichier .WER est ensuite transmis au client pour mise à jour.
Cas d'une réplication assistée avec serveur de réplication : Si vous effectuez une réplication assistée avec serveur de réplication, le fichier .WER doit être déployé sur le serveur de réplication avec tous les renseignements concernant les connexions aux bases de données maître. Pour plus de détails, consultez Serveur de Réplication Universelle Assistée.
Liste des exemples associés :
WD Réplication Universelle Exemples didactiques (WINDEV) : WD Réplication Universelle
[ + ] Cet exemple montre comment synchroniser les données de différents sites en utilisant la réplication universelle.
La réplication universelle permet depuis les traitements d'une application de synchroniser les données d'un site (maître), avec les mêmes données d'un ou plusieurs autres sites (abonnés). Les structures des données sont identiques sur chaque site, mais peuvent être exploitées via différents gestionnaires de données. Pour l'exemple HFSQL classic et Access sont utilisés.
L'exemple présente de façon didactique les traitements à placer dans vos applications pour permettre à l'utilisateur par une simple action (menu, bouton...) de :
- créer un réplica maître,
- créer un ou plusieurs réplicas abonnés,
- consulter / modifier les données de ces réplicas,
- exporter les données nouvellement créées ou modifiées sur un site (réplica transportable),
- importer les données créées ou modifiées sur un autre site...
Version minimum requise
  • Version 12
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale