Autor Thema: Notes Script Agent läuft nicht über alle selektierten Forms  (Gelesen 2031 mal)

Offline Peacemaker

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Ich liebe dieses Forum!
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



« Letzte Änderung: 30.09.04 - 12:32:52 von Peacemaker »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Für so etwas musst Du die Property UnprocessedDocuments der NotesDatabase class verwenden.

Bernhard

PS: Wozu soll denn das dienen ?
"n = doc.numberss(0)"

Offline Peacemaker

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Ich liebe dieses Forum!
danke für den tipp

die Anzahl der while schleifendurchgänge ist von Form zu form unterschiedlich - deswegen wird sie ausgelesen.

Offline Peacemaker

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Ich liebe dieses Forum!
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
« Letzte Änderung: 30.09.04 - 12:35:22 von Peacemaker »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Wo kommt der Fehler ?

Offline Peacemaker

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Ich liebe dieses Forum!
beim starten des agenten über das Actions Menü

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Ach was ...  ;D

In welcher Zeile kommt es zu dem Fehler ?

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
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
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

klaussal

  • Gast
22 ist ein bisschen übertrieben, eine 2. schleife reicht..  ;) ;D

klaus

Offline Peacemaker

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Ich liebe dieses Forum!
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

Offline Peacemaker

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Ich liebe dieses Forum!
Re: Notes Script Agent läuft nicht über alle selektierten Forms
« Antwort #10 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
« Letzte Änderung: 30.09.04 - 12:54:10 von Peacemaker »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Notes Script Agent läuft nicht über alle selektierten Forms
« Antwort #11 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

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Notes Script Agent läuft nicht über alle selektierten Forms
« Antwort #12 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....
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz