[Lotuscript] Je cherche à faire un chtit prog pour comparer 2 bases...

Je cherche à faire un chtit prog pour comparer 2 bases... [Lotuscript] - Programmation

Marsh Posté le 22-10-2001 à 10:27:52    

Yep je sais que c po souvent que l'on demande de l'aide sur Lotuscript mais là j'ai besoin de votre aide.
 
voilà mon pb: Il faut que je compare 2 bases. (une productionnelle et une "test avant chargement" )
Le but de la manoeuvre étant de savoir quels enregistrements ont disparus et quels sont ceux qui sont apparus.
 
pour se faire j'avais penser sélectionner les bases puis les 2 mêmes vues et enfin comparer certains champs de ces 2 vues dans le but de renseigner un fichier Log qui contiendrait le nom des enregistrement qui ont disparus et cuex qui sont news.
 
Voius voyez un peu le truc ?? So si qlq1 à une idée je suis preneur :)
 
Thx


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 22-10-2001 à 10:27:52   

Reply

Marsh Posté le 22-10-2001 à 15:03:09    

c vrai que y'a pas bcp de question Lotusscript ici :D
 
Pour ton truc j'vois pas comment tu veux faire autrement.
J'avais fait déjà un truc dans le genre.
 
ce qui est pas mal c la méthode search de la classe notesdatabase.
Ensuite tu parcours la collection renvoyée dans la première base et tu regardes si ton doc existe dans l'autre base en t'appuyant sur la vue cette fois pour faire une recherche par clé (méthode GetDocumentByKey de la classe notesview).


---------------
Mes photos,Feed-Back HA/V
Reply

Marsh Posté le 22-10-2001 à 17:14:21    

Thx Manou pour ton reply :)
Je viens juste de terminer ma chtite fonction de recherche :D
Bon je sais po si elle fonctionne mais je verrai bien.
Sinon j'ai regardé ce que faisait la fonction Search et en fait elle fait exactement ce que je veux :) et en plus c plus propre et moins bourrin que mon truc :lol:
 
Je te dis juste pour voir ce que tu en penses.
Alors allons-y:
-> Tout d'abord, je me pose une question à savoir si on peut sélectionner 2 BD pour une même session ??  
 
ex:  
-----
Set db_prod = session.GetDatabase("server","base" )
 
Set db_load = session.GetDataBase("server","base" )
 
 
Si c po possible, je suis po ds la merde moi déjà :p
 
->Ensuite...bon je te colle le code parceque c trop long à expliquer :p
 
Voilà, est-ce que je peux faire tourner ça ??
 
Sub Research ()
 
 On Error Goto errhandle
 
Dim session As New NotesSession
Dim db_prod As NotesDatabase
Dim db_load As NotesDatabase
Dim view_prod As NotesView
Dim view_load As NotesView
Dim doccollection1 As NotesDocument
Dim doccollection2 As NotesDocument
Dim collection1 As NotesDocumentCollection
Dim collection2 As NotesDocumentCollection
Dim doc1 As NotesDocument
Dim doc2 As NotesDocument
Dim keys (0 To 1)
 
Set db_prod = session.GetDatabase("server","base" )
Set db_load = session.GetDataBase("server","base" )
 
 
'Log file creation
Set agentLog = New NotesLog ("LoadFast/Productional compare" )
Call agentLog.OpenNotesLog ("","logresearch.nsf" )
Call agentLog.LogAction("Beginning of comparison at " & Format(Now(),"Long Time" ))
 
 
Set view_prod = db_prod.GetView("$extractes210" )
Set view_load = db_load.GetView("$extractes210" )
 
Set doc1 = view_prod.GetFirstDocument  
 
found :
 
While Not(doc1 Is Nothing)
 keys(0) = doc1.salesmannum
 keys(1) = doc1.custnum
   
 Set collection2 = view_load.GetAllDocumentsByKey  (keys,True)
 Set doccollection2 = collection2.GetFirstDocument
 If Not(doccollection2 Is Nothing) Then
 While Not (doccollection2 Is Nothing)  ' while we have a document in the collection
    If Not(doc1.PCN(0) = doccollection2.PCN(0)) Then
       Set doccollection2 = doccollection.GetNextDocumennt(doccollection2)
    Else
      'Document is still existing
       Set doc1 = view_prod.GetNextDocument(doc1)
       Goto found
    End If
 Wend  
 If (doccollection Is Nothing) Then
    'Document not found
     Call agentLog.LogAction("Product - " & doc1.proddesc & " - not found under Salesman - " & doc1.salesmanname & "at " & Format(Now(),"Long Time" ))
     Set doc1 = view_prod.GetNextDocument(doc1)
     Goto found
 End If
   Else
        'Salesman or Custnum not found
 Call agentLog.LogAction("Salesman - " & doc1.salesmanname & " - with custnum - " & doc1.custnum & " - not found at " & Format(Now(),"Long Time" ))
 Set doc1 = view_prod.GetNextDocument(doc1)
End If    
Wend
 
 
errhandle:
Print doc.custname(0) & " "  & doc.countrycode(0) & " "  & doc.mktcode(0) & " "  & doc.salesmanname(0) & " "  & doc.proddesc(0)
 Print "Error" & Str(Err) & ": " & Error$
End Sub


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 22-10-2001 à 17:20:33    

ben d'abord pour ta première question no blem tu selectionnes autant de bases que tu veux ;)


---------------
Mes photos,Feed-Back HA/V
Reply

Marsh Posté le 22-10-2001 à 17:32:38    

ben çà à l'air correct syntaxiquement ;)
 
ton goto found n'est pas très propre nan + ;)
 
mais rien de mieux pour tester que de lancer l'agent avec le debugger lotusscript ;)


---------------
Mes photos,Feed-Back HA/V
Reply

Marsh Posté le 22-10-2001 à 17:36:27    

Vi c vrai je te l'avais dit que c'était un peu bourrin :p  
mais bon si tu penses que syntaxiquement c correct et ben je vais le tester en debug mode...mais euh la je le testerai demain car j'en ai un peu ma dose pour aujourd'hui :p et en plus j'ai un pc à monté pour une amie alors bon...
 
Enfin c cool de me répondre car il n'y a pas l'air d'avoir bcp de developpeur LotusScript sur le forum ;)
 
Bon allez @+ et encore merci pour ton aide précieuse.


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 22-10-2001 à 21:35:56    

ben nan c clair pô bcp de gens qui développe en Domino/Notes :D:D sur le forum. Ou il ne se montre pas :lol:
Moi, je suis en plein dedans en ce moment chez un client (refonte d'une petite appli pour la rendre compatible WEB )

 

[edtdd]--Message édité par m@nou--[/edtdd]


---------------
Mes photos,Feed-Back HA/V
Reply

Marsh Posté le 23-10-2001 à 10:32:38    

Ca a l'air sympa :) Moi je développe pour une grosse boite et on est que 2 pour tout faire sur Lotus, admin et dev !! En plus ma tutrice (oui je suis en apprentissage à bac+4) elle y connaissait que dale, elle a remplacé mon ancien tuteur en février et lui il fait du sql maintenant...
Enfin bref, tout ça pour dire que c assez hard ici pour tout gérer :pt1cable:  
 
Voilate voilate :) Sinon je suis en train de regarder comment je pourrais rendre ce petit prog mon bourrin et un epu plus clean :D
 
Allez @+  :jap:


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 23-10-2001 à 10:47:10    

ouaip si tu suis la piste que je t donné çà sera un peu plus performant que 2 boucles imbriquées, enfin je pense.
 
Allez bon courage ;)
Moi j'ai plus qu'un bug et j'ai fini :D:D


---------------
Mes photos,Feed-Back HA/V
Reply

Marsh Posté le 24-10-2001 à 17:31:20    

G un problème !! Il trouve rien qd je lui mets ça :
Set collection2 = view_load.GetAllDocumentsByKey(keys,true) ??!!
 
C parceque ds la keys g des data de la vue "view_prod" qui me fait chier ou c autre chose ??


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 24-10-2001 à 17:31:20   

Reply

Marsh Posté le 25-10-2001 à 12:32:02    

M@nou t encore là ??


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 26-10-2001 à 15:17:22    

Quelqu'un d'autre alors ??
plizz help me :)


---------------
Q.G Tutoriaux ici
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed