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 ??
m@nou
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
dirakocha
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:
m@nou
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]
dirakocha
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.
m@nou
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 ;)
m@nou
ben d'abord pour ta première question no blem tu selectionnes autant de bases que tu veux ;)
dirakocha
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
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).
dirakocha
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 :)