Page 1 sur 1

Est-il possible de répliquer un document en scripte

MessagePublié: 13 Oct 2010 à 10:54
par LSong
Bonjour,

quelqu'un saurait-il s'il est possible en scripte de repliquer un document entre deux repliques en scripte

pour histoire

j'ai un Serveur A
qui va dans un HUB A
qui est connecté a un HUB B
connecté a une Replique B

je souhaite envoyer un document de B dans A comme si le document avait repliquer, pour que quand les replications se fasse je ne me retrouve pas avec des conflits

je ne sais pas si c'est claire comme question

MessagePublié: 13 Oct 2010 à 11:38
par Michael DELIQUE
salut

je suppose que tu parles de conflit d'enregistrement pas de réplique ?

MessagePublié: 13 Oct 2010 à 12:33
par LSong
je parle bien de repliquer un document a la demande entre deux replique

si je fait que copier le document je vais provoquer une duplication ou un conflit selon la methode

je cherche un moyen de repliquer un document entre deux bases a la main ... je ne sais pas si c'est possible

MessagePublié: 13 Oct 2010 à 12:36
par Michael DELIQUE
re,

bon la copie de document entre 2 replique ne change pas l'unid des documents si cexi ne sont pas présent dans la base cible.

maintenant comment peut tu avoir un conflit si tu ne change le document qu'a un seul endroit ?

MessagePublié: 13 Oct 2010 à 13:12
par LSong
dans la Base B j'ai un document que l'utilisateur peu modifier
il doit faire une publication qui le rend disponible sur le web, sauf que cette partie est centraliser et sur une autre techno (qui ne supporte pas la réplication)

du coup le site web pointe vers un document sur la base A qui du coup n'est pas le bon tant que la replication n'est pas venu le mettre à jour on voulait faire une replication cible sur le document entre A et B pour mettre a jour ce document avant la publication

dut au passage par les hub la replication peu prendre 1h ...

MessagePublié: 13 Oct 2010 à 13:15
par Michael DELIQUE
je ne connais pas de méthode qui permette de forcer la réplication d'un seul document

par contre ce que tu peux faire/ essayer en script

supprimer le document de la base A et en faire une copie depuis la base B.

et tu regarde si l'unid a changé

MessagePublié: 13 Oct 2010 à 13:29
par LSong
c'est ce que je fais pour le moment ca part en vrille des que je supprime :D

je ne vais pas abandoner :)

MessagePublié: 13 Oct 2010 à 13:50
par Michael DELIQUE
qu'as tu comme erreur ?

MessagePublié: 13 Oct 2010 à 14:52
par LSong
pas d'erreur mais je suis aller chercher le document dans la base cible avec un db.getDocumentByUNID, du coup quand je le supprime ca me le supprimez aussi dans la base initial, ce qui n'etait pas le but

j'ai dut aller le rechercher via une vue trié par UNID pour que ca marche

apres mon effacement / copie la replique fonctionne normalement
Code : Tout sélectionner
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim docCol As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim view As NotesView
   
   Set db = s.CurrentDatabase
   Set docCol = db.UnprocessedDocuments
   Set doc = docCol.GetFirstDocument ()
   
   Dim dbR As New NotesDatabase ("", "")
   Dim docR As NotesDocument
   Dim docR2 As NotesDocument
   
   Call dbR.Open ("dvpar007", db.FilePath)
   Set view = dbR.GetView ("UNID")
   
   Set docR = view.GetDocumentByKey (doc.UniversalID, True)
   Print docR.UniversalID
   Call docR.Remove (True)
   Set docR2 =  doc.CopyToDatabase (dbR)
   Print docR2.UniversalID
   If docR2.UniversalID <> doc.UniversalID Then
      docR2.UniversalID = doc.UniversalID
      Call docR2.Save (True, False)
   End If

MessagePublié: 13 Oct 2010 à 15:10
par Michael DELIQUE
re,

pas normale, si tu supprime sur une base, c'est la réplication qui supprime sur l'autre !

tu ne devrais pas avoir besoin de passer par une vue par unid (qui en passant est lourd et inutile)

MessagePublié: 13 Oct 2010 à 15:36
par LSong
je sais moi aussi je trouve ca etrange
tant que j'ai fait un db.getDocumentByUNID j'ai eut des problèmes

MessagePublié: 13 Oct 2010 à 23:39
par roubech
et tu peux pas plus simplement créer les docs de connections pour augmenter la fréquence de réplication pour cette base là entre les différents serveurs ?

sinon, lancer une rplication de la base entre 2 serveur (pas juste un doc), db.replicate ou @Command([ToolsReplicate]

MessagePublié: 14 Oct 2010 à 08:40
par LSong
ben il n'y a pas de document de replication entre les deux base directement

les utilisateur qui vont avoir besoin de ca n'ont pas de droit particulier

mais c'est vrai qu'il faut creuser aussi par la