Domino 9 und frühere Versionen > Entwicklung
Agent
HipSlu:
Folgene Bitte / Frage:
ich möchte einen periodischen agent erstellen, der
- alle dokumente einer bestimmten ansicht (oder einer bestimmten maske, ist egal) durchgeht,
- dann ein neues dokument mit einer best. maske erstellt und 2 Felder befüllt; die Document Unique ID des "Ausgangdokumentes" ins eine und "0" ins andere
- dies soll aber nur passieren, wenn es das dokument nicht schon gibt (sollte ja über die unid kein problem sein)
so - und nun kann ich leider nur formel; und da fällt mir irgendwie nicht ein, wie ich ein neues dokument erstellen kann...
kann mir bitte jemand auf die sprünge helfen bzw die 10 zeilen in script verraten (viel mehr wirds nicht sein denke ich mal)?
vielen dank! ;)
doliman:
Hi,
versuchs mal mit dem hier. Ich hoffe ich habe Deine Anleitung richtig verstanden.
Gruß
Frank
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
'1. View die Docs die durchgegangen werden sollen
Dim view1 As NotesView
'2. View auf die zu erstellende Docs (doc2), kategorisiert in der ersten Spalte mit dem
'zu befüllenden Feld des auszulesenden Dokumentes
Dim view2 As NotesView
Dim doc1 As notesdocument
Dim doc2 As notesdocument
Dim keys( 1 To 2 ) As String
Set db = session.CurrentDatabase
Set view1 = db.GetView( "DeineView2" )
Set view1 = db.GetView( "DeineView1" )
set doc1 = view.getfirstdocument
do while doc1 is nothing
iddoc1$ = doc1.uinversalid
keys( 1 ) = iddoc1$
Set doc2 = view2.GetDocumentByKey( keys )
if doc2 is nothing then
Set doc2 = New NotesDocument(db)
doc2.Form = "FormName"
doc2.IDDoc1 = doc1.uinversalid
doc2.Feldname = 0
end if
loop
End Sub
HipSlu:
Hallo,
vielen Dank für Deine Hilfe - habs versucht, bekomme allerdings leider folgende Fehlermeldung:
"Variant does not contain an object"
HipSlu:
Hier der momentane Agent:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view1 As NotesView
Dim view2 As NotesView
Dim doc1 As notesdocument
Dim doc2 As notesdocument
Dim keys( 1 To 2 ) As String
Set db = session.CurrentDatabase
Set view1 = db.GetView( "ThemaView" )
Set view1 = db.GetView( "(CounterView2)" )
Set doc1 = view.getfirstdocument
Do While doc1 Is Nothing
iddoc1$ = doc1.uinversalid
keys( 1 ) = iddoc1$
Set doc2 = view2.GetDocumentByKey( keys )
If doc2 Is Nothing Then
Set doc2 = New NotesDocument(db)
doc2.Form = "Counter"
doc2.Unid_Faq = doc1.uinversalid
doc2.N_Views = 0
End If
Loop
End Sub
Der "(CounterView2)" sieht so aus:
1. Spalte: UNID des Ausgangsdocs
2. der Inhalt des Feldes "N_Views" => Standard=0
3. die UNID des Docs selbst
Und die erste Spalte ist, so wie Du geschrieben hast, kategorisiert
HipSlu:
hab glaub ich einen fehler gefunden:
Set view1 = db.GetView( "ThemaView" )
Set view2 = db.GetView( "(CounterView2)" )
und
Set doc1 = view1.getfirstdocument
nur.... dokumente erstellt er leider keine....
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln