Domino 9 und frühere Versionen > Entwicklung

Frage zu Script!

(1/3) > >>

Christopher:
Hallo Leute,

ich habe folgenden Agenten programmiert. Wo mit ich überprüfen will ob es Nutzer mit diesem Namen in einer anderen DB schon gibt. Der Agente funktioniert auch wenn ich ein Dokument makiere  ;D wenn ich mehrere Dokumente habe haut das nicht mehr so hin. Ich denke ich habe irgendwo noch einen Logik Fehler bin aber zur Zeit Blind  8) und seh es nicht



Sub Initialize
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Dim doc As NotesDocument
     Dim view As NotesView
     Dim collection As NotesDocumentCollection      
     
     
     
     Set session = New notessession
     Set db=session.currentdatabase
     Set collection=db.UnprocessedDocuments      
     
     Set doc=collection.GetFirstDocument
     
     For i=1 To collection.count
           vname=doc.Firstname(0)
           nname=doc.LastName(0)
           gname=vname + nname
           
           server = "ZKOMZMILDBW"
           dbfile = "orgdb.nsf"
           'OrgDB öffnen
           Set db = New NotesDatabase( server, dbfile )
           
           Set view = db.GetView( "($Users)" )
           Set doc = view.GetDocumentByKey( gname )
           
           
           If Not (doc Is Nothing) Then
     'Felder übernehmen            
                 Set db=session.currentdatabase
                 Set doc=collection.GetFirstDocument
                 doc.TName="1"
                 doc.Save True,False
                 Msgbox "Es gibt schon einen Nutzer mit dem Namen " + gname + " handelt es sich um die selbe Person?"
                 
           Else
                 Set db=session.currentdatabase                  
                 Set doc=collection.GetFirstDocument                  
                 'Msgbox"Kein Dokument im Verzeichnis BW gefunden!"
                 doc.TName="0"
                 doc.Save True,False
                 
                 
           End If            
           
           Set doc=collection.GetNextDocument(doc)      
     Next
End Sub

eknori:
Moin,

Set doc=collection.GetFirstDocument  ?? Und das bei jedem Document der Collection ??

Muss es nicht  heissen

Set doc=collection.GetNthDocument (i%) ??

Axel:
Hi Christopher,

Du nimmst die Variable doc meines Erachtens für zwei verschiedene Dinge. Einmal in der Schleife, in der du die markierten Dokumente bearbeitest und einmal bei der Suche in einer Ansicht.

Axel







Christopher:
Hallo Eknori alter Hase  ;D ,

Du hattest recht. Bin halt noch nich so fit in Script.
Danke Axel ich habe mal doc2 gesetzt ich weiß aber nicht ob das unbedingt erforderlich ist?

Laut Debuger wird doc2 nicht belegt.

Viele Grüße

Christopher

Christopher:
Das Script sieht jetzt so aus:

Sub Initialize
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Dim doc As NotesDocument, doc2 As notesDocument
     Dim view As NotesView
     Dim collection As NotesDocumentCollection      
     
     
     
     Set session = New notessession
     Set db=session.currentdatabase
     Set collection=db.UnprocessedDocuments      
     
     Set doc=collection.GetFirstDocument
     
     For i=1 To collection.count
           vname=doc.Firstname(0)
           nname=doc.LastName(0)
           gname=vname + nname
           
           server = "ZKOMZMILDBW"
           dbfile = "orgdb.nsf"
           'OrgDB öffnen
           Set db = New NotesDatabase( server, dbfile )
           
           Set view = db.GetView( "($Users)" )
           Set doc2 = view.GetDocumentByKey( gname )
           
           
           If Not (doc2 Is Nothing) Then
     'Felder übernehmen            
                 Set db=session.currentdatabase
                 Set doc=collection.GetNthDocument (i)
                 doc.TName="1"
                 doc.Save True,False
                 Msgbox "Es gibt schon einen Nutzer mit dem Namen " + gname + " handelt es sich um die selbe Person?"
                 
           Else
                 Set db=session.currentdatabase                  
                 Set doc=collection.GetNthDocument (i)             
                 'Msgbox"Kein Dokument im Verzeichnis BW gefunden!"
                 doc.TName="0"
                 doc.Save True,False
                 
                 
           End If            
           Set doc = collection.GetNextDocument(doc)
           
     Next
End Sub

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln