Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Peacemaker am 30.09.04 - 11:29:20

Titel: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: Peacemaker am 30.09.04 - 11:29:20
Hallo alle zusammen,

ich bin mal wieder ratlos:

Ich habe einen LS Agenten (weiter unten geposted), den ich mittels agent properties auf "All selected documents" angesetzt habe. Wenn ich nun mehrere Forms im View selektiere udn den Agenten starte, bearbeitet er aber trotzdem nur das erste der selektierten Forms (korrekt und fehlerfrei). Wieso das???

Danke für eure hilfe

Sub Initialize
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim docNew As NotesDocument
   Dim strN As String
   Dim n As Integer
   Dim subname As String
   Dim alllongnames As String
   Dim uiview As NotesUIView
   
   
   
   Set db = session.CurrentDatabase
   Set doc = session.DocumentContext
   
   n = doc.numberss(0)
   
   While n >= 1
      
      Set docNew = db.CreateDocument
      docNew.form = "add_subsystem"   
      docNew.serialnr = doc.serialnr(0)
      docNew.model = doc.model(0)
      docNew.type = doc.type(0)
      docNew.sysid = doc.sysid(0)
      docNew.customer = doc.customer(0)
      
      docNew.alllongnames_temp = doc.alllongnames(n-1)
      docNew.subsys_temp = doc.subsys(n-1)
      docNew.ecnumbers_temp = doc.ecnumbers(n-1)
      docNew.alldrivers_temp = doc.alldrivers(n-1)
      docNew.allrec_temp = doc.allrec(n-1)
      docNew.allact_temp = doc.allact(n-1)
      docNew.allacttime_temp = doc.allacttime(n-1)
      docNew.allmax_temp = doc.allmax(n-1)
      docNew.allacc_temp = doc.allacc(n-1)
      docNew.allacttime_temp = doc.allacttime(n-1)
      docNew.doctype = "Subsystem Information"
      Call docNew.Save( True, False )
      
      
      n=n-1
      
   Wend
   
   
End Sub



Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: koehlerbv am 30.09.04 - 11:34:36
Für so etwas musst Du die Property UnprocessedDocuments der NotesDatabase class verwenden.

Bernhard

PS: Wozu soll denn das dienen ?
"n = doc.numberss(0)"
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: Peacemaker am 30.09.04 - 12:12:09
danke für den tipp

die Anzahl der while schleifendurchgänge ist von Form zu form unterschiedlich - deswegen wird sie ausgelesen.
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: Peacemaker am 30.09.04 - 12:31:50
hab den Text wie folgt abgeändert - irgendwie tut ers aber noch nicht - Error: Subscript out of range...


Sub Initialize
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim docNew As NotesDocument
   Dim strN As String
   Dim n As Integer
   Dim subname As String
   Dim alllongnames As String
   Dim uiview As NotesUIView
   Dim collection As NotesDocumentCollection
   
   
   Set db = session.CurrentDatabase
   
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument()


   n = doc.numberss(0)
   
   While n >= 1
      
      Set docNew = db.CreateDocument
      docNew.form = "add_subsystem"   
      docNew.serialnr = doc.serialnr(0)
      docNew.model = doc.model(0)
      docNew.type = doc.type(0)
      docNew.sysid = doc.sysid(0)
      docNew.customer = doc.customer(0)
      
      docNew.alllongnames_temp = doc.alllongnames(n-1)
      docNew.subsys_temp = doc.subsys(n-1)
      docNew.ecnumbers_temp = doc.ecnumbers(n-1)
      docNew.alldrivers_temp = doc.alldrivers(n-1)
      docNew.allrec_temp = doc.allrec(n-1)
      docNew.allact_temp = doc.allact(n-1)
      docNew.allacttime_temp = doc.allacttime(n-1)
      docNew.allmax_temp = doc.allmax(n-1)
      docNew.allacc_temp = doc.allacc(n-1)
      docNew.allacttime_temp = doc.allacttime(n-1)
      docNew.doctype = "Subsystem Information"
      Call docNew.Save( True, False )
      
      
      n=n-1
      Set doc = collection.GetNextDocument(doc)
   Wend
   
   
End Sub
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: koehlerbv am 30.09.04 - 12:33:59
Wo kommt der Fehler ?
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: Peacemaker am 30.09.04 - 12:34:34
beim starten des agenten über das Actions Menü
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: koehlerbv am 30.09.04 - 12:37:36
Ach was ...  ;D

In welcher Zeile kommt es zu dem Fehler ?
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: umi am 30.09.04 - 12:43:18
Das problem liegt in der while schleife, dort sollte kein set doc=collection... stehen.
Bzw. Dafür brauchst du eine 22 while schleifen, eine für die unprocessed Dokuments.

gruss umi
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: klaussal am 30.09.04 - 12:46:25
22 ist ein bisschen übertrieben, eine 2. schleife reicht..  ;) ;D

klaus
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: Peacemaker am 30.09.04 - 12:49:13
in Zeile 33 - das wäre bei
docNew.alllongnames_temp = doc.alllongnames(n-1)

vorher hatte ich ja Set doc = session.DocumentContext definiert. Damit lief die Zeile einwandfrei - scheinbar geht die docNew zuweisung nichtmehr mit der doc = collection.GetFirstDocument() Zeile
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: Peacemaker am 30.09.04 - 12:51:03
ohoh, danke für den Tip mit der Wile schleife - das war wohl im halbschlaf da reinkopiert.

Jetzt läufts wieder - bearbeitet aber immernoch nur ein Dokument im View und nicht alle selektierten wie er eigentlich soll

hab da smit dr Schleife überlesen - danke jetzt eghts
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: koehlerbv am 30.09.04 - 12:53:11
Wie sieht denn Dein Code nun aus ?

Zur Fehlermeldung: Diese besagt, dass es das (n - 1). Element in dem betreffenden Item nicht gibt.

Bernhard
Titel: Re: Notes Script Agent läuft nicht über alle selektierten Forms
Beitrag von: umi am 30.09.04 - 13:18:54
Schau Dir mal folgendes an zu NotesUIView.Documents:

Zitat
Read-only. The documents that are currently selected in a view.
Defined in
NotesUIView
Data type
NotesDocumentCollection
Syntax
To get: Set notesDocumentCollection = notesUIView.Documents
Usage
In NotesUIView events such as QueryOpen where you cannot have documents selected, Documents.Count is 0.

Damit kommst du ganz bequem an die selektierten Dokumente. Der Agent kann als target sogar none haben....