Domino 9 und frühere Versionen > Entwicklung

Agent

(1/3) > >>

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