Domino 9 und frühere Versionen > Entwicklung
Frage zu Script!
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