PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → [WD17] Replication universelle - HELP
[WD17] Replication universelle - HELP
Iniciado por jb.bernard, 14,ene. 2019 09:36 - No hay respuesta
Publicado el 14,enero 2019 - 09:36
Bonjour à tous,
Ayant posté dans le forum Ancienne version et ne parvenant pas obtenir de réponses, je tente dans ce forum.
Si vous avez une idée, merci par avance car là, franchement, je sèche.
Cordialement

Posté le 04 janvier 2019 - 10:46
Bonjour et bonne année à tous.
Que vos développements se réalisent tant au niveau personnel que professionnel.

Je suis bloqué sur la réplication universelle des données. Excusez par avance la longueur de ce post.

Ayant des agents en télétravail, je dois permettre, lors de leur départ du siège, de récupérer les données de la base SIEGE puis, lors de leur retour, synchroniser leur base locale avec le siège et inversement.

Pour cela j'ai réalisé les étapes suivantes :

1 - Création du réplica maître de la base SIEGE -> Obtention d'un fichier RPM OK
2- Création d'un réplica abonné sur le disque local en identifiant le réplica avec les initiales de l'agent(_XX) -> Obtention d'un fichier REPLICA_XX.RPL OK
3- Création des réplicas transportable et synchro des deux bases -> OK la première fois mais impossible après.

L'erreur est "Impossible d'ouvrir le fichier Répertoire du fichier SIEGE\" alors que le poste peut accéder à ce répertoire et que le fichier Rep_Maitre.RPM existe.

Voici le code utilisé :
////--------------------------------------------------
//// création réplica transportable MAITRE -> ABONNE -
////--------------------------------------------------
fRepCrée(sRep_abonne)
HGèreIntégrité(Faux)
HGèreRéplication(rplRéplicationUniverselle)
//HCréeRéplicaAbonné(sRep_maitre,sRep_abonne,"REPLICATION_"+gsMesInitiales,0)
HGèreIntégrité(Vrai)

// Crée la copie des données dans le répertoire déconnecté de l'utilisateur
SI PAS HCréeRéplicaTransportable(sRep_maitre+"REP_MAITRE.RPM","REPLICATION_"+gsMesInitiales,"","") ALORS
Erreur("Impossible de créer le réplica transportable.",ErreurInfo(errComplet))
SINON
ToastAffiche("Réplica transportable "+RPL.Fichier+" créé avec succès.",toastCourt,cvMilieu,chCentre)
FIN
fCopieFichier(sRep_maitre+RPL.Fichier,sRep_abonne+RPL.Fichier)
fSupprime(sRep_maitre+RPL.Fichier)

fRepCrée(fRepDonnéesUtilisateur()+"\DECONNECTE\")
HChangeRep("*",fRepDonnéesUtilisateur()+"\DECONNECTE\")
HGèreIntégrité(Faux)
HGèreRéplication(rplRéplicationUniverselle)
SI PAS HSynchroniseRéplica(sRep_abonne+RPL.Fichier,sRep_abonne+"Replica_REPLICATION_"+gsMesInitiales+".rpl",rplVersAbonné,rplPlusRécentPrioritaire) ALORS
Erreur("Impossible de synchroniser le maître vers l'abonné.",ErreurInfo(errComplet))
SINON
ToastAffiche("Synchronisation du maître vers l'abonné réalisée avec succès.",toastCourt,cvMilieu,chCentre)
FIN
HGèreIntégrité(Vrai)


////--------------------------------------------------
//// création réplica transportable ABONNE -> MAITRE -
////--------------------------------------------------
// On crée le réplica de la base abonné vers maître pour informer le maître que la MAJ est OK
HGèreIntégrité(Faux)
HGèreRéplication(rplRéplicationUniverselle)
SI PAS HCréeRéplicaTransportable(sRep_abonne+"Replica_REPLICATION_"+gsMesInitiales+".rpl","REPLICATION_"+gsMesInitiales,"","")ALORS
Erreur("Impossible de créer le réplica transportable.",ErreurInfo(errComplet))
SINON
ToastAffiche("Réplica transportable "+RPL.Fichier+" créé avec succès.",toastCourt,cvMilieu,chCentre)
FIN

HChangeRep("*",gsAdresseFic)
SI PAS HSynchroniseRéplica(sRep_maitre+"REP_MAITRE.RPM",sRep_abonne+RPL.Fichier,rplVersMaître,rplPlusRécentPrioritaire) ALORS
Erreur("Impossible de synchroniser l'abonné vers le maître.",ErreurInfo(errComplet))
SINON
ToastAffiche("Synchronisation de l'abonné vers le maître réalisée avec succès.",toastCourt,cvMilieu,chCentre)
FIN
HGèreIntégrité(Vrai)


J'ai donc voulu créer une fenetre avec 2 selecteurs de fichier pour indiquer le chemin du fichier maitre RPM et local RPL
J'ai alors l'erreur suivante : Erreur à la ligne 7 du traitement Clic sur BTN_Valider.
Vous avez appelé la fonction HCréeRéplicaTransportable.
Nom de fichier invalide : <>

Le code posant problème est el suivant : HCréeRéplicaTransportable(SC_SelecteurFichier.SAI_FIC_Maitre,SC_SelecteurFichier1.SAI_FIC_Abonne,"","")

Je en comprends pas comment faire la création de ce réplica pour permettre la synchro.

Merci de votre aide.
Cordialement