Autor Thema: Dokument öffnen, speichern und wieder schließen in Script  (Gelesen 4154 mal)

Offline Christian97

  • Aktives Mitglied
  • ***
  • Beiträge: 182
  • Geschlecht: Männlich
Hallo,

im Anschluß an einen Import möchte ich in den Dokumenten noch einige Felder berechnet lassen. In der Maske sind diese Felder vom Typ "Berechnet beim Anlegen". Allerdings muß ich dazu jedes importierte Dokument zum Bearbeiten öffnen, speichern und wieder schließen. Ich habe versucht, mir einen Button-Agenten in der Ansicht zu erstellen, der mir jedes Dokument in der Ansicht durchgeht, die Dokumente nacheinander öffnet, speichert und wieder schließt. Bisher sieht mein Code so aus:

Sub Click(Source As Button)
   Dim ws As New notesuiworkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument      
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument()
   While Not(doc Is Nothing)
      Set uidoc = ws.CurrentDocument   
      Call ws.EditDocument(True)      
      Call uidoc.save
      Call uidoc.close      
      Set doc = collection.GetNextDocument(doc)
   Wend
End Sub

Beim Save und Close kommt aber immer die berühmte Fehlermeldung "Object variable not set". Aber ich hab doch das uidoc gesetzt. Was mach ich falsch?

Danke
Christian

Glombi

  • Gast
Re:Dokument öffnen, speichern und wieder schließen in Script
« Antwort #1 am: 13.07.04 - 10:05:36 »
Du brauchst das UI Dokument nicht, sondern kannst ComputeWithForm verwenden.

Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument
   While Not(doc Is Nothing)
      call doc.ComputeWithForm(false,false)
      call doc.Save(true,true,true)
      Set doc = collection.GetNextDocument(doc)
   Wend
End Sub

Andreas

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Dokument öffnen, speichern und wieder schließen in Script
« Antwort #2 am: 13.07.04 - 10:06:09 »
... dein uidoc wird falsch initialisiert, den du hast kein ws.CurrentDocument

Set uidoc = ws.EditDocument( True , doc )
Grüßle Toni :)

Driri

  • Gast
Re:Dokument öffnen, speichern und wieder schließen in Script
« Antwort #3 am: 13.07.04 - 10:10:18 »
Btw : Meistens reicht für den Fall auch ein simpler @Command([ToolsRefreshSelectedDocs]) bzw. @Command([ToolsRefreshAllDocs]).

Offline Christian97

  • Aktives Mitglied
  • ***
  • Beiträge: 182
  • Geschlecht: Männlich
Re:Dokument öffnen, speichern und wieder schließen in Script
« Antwort #4 am: 13.07.04 - 10:45:13 »
Vielen Dank erstmal an Euch drei!

@Driri:
Hätte nicht gedacht, daß es doch noch eine @Formel-Lösung gibt. Allerdings muß ich da erst alle Dokumente markieren.

@Glombi:
Bei Deiner Lösung passiert bei mir gar nichts. Ich erkenne hinterher zumindest nicht, daß die neuen Felder (und auch der Fenstertitel) berechnet wurden.

@ata:
Ich habe die eine Zeile abgeändert. Aber ich muß vorher alle Dokumente markieren. Werden nicht durch die Collection automatisch alle Dokumente der Ansicht durchlaufen?

Christian

Driri

  • Gast
Re:Dokument öffnen, speichern und wieder schließen in Script
« Antwort #5 am: 13.07.04 - 10:48:13 »
Nö, wenn Du die Formel aus einer View heraus startest, in der die Dokumente drin sind, reicht [ToolsRefreshAllDocs].

Offline Christian97

  • Aktives Mitglied
  • ***
  • Beiträge: 182
  • Geschlecht: Männlich
Re:Dokument öffnen, speichern und wieder schließen in Script
« Antwort #6 am: 13.07.04 - 10:51:00 »
@Driri:
Hmm, jetzt klappt's. Warum das Command beim ersten Versuch nicht ging und nur @Command([ToolsRefreshSelectedDocs]) ist mir ein Rätsel.

Vielen Dank!

Christian

Driri

  • Gast
Re:Dokument öffnen, speichern und wieder schließen in Script
« Antwort #7 am: 13.07.04 - 11:05:51 »
Gerne  ;)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz