Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: Kaljamam am 26.07.17 - 10:24:13

Titel: Dokumente in Ansicht öffnen und speichern
Beitrag von: Kaljamam am 26.07.17 - 10:24:13
Hallo zusammen,

habe in einer Ansicht mehrere Dokumente. Ich würde gerne einen Agenten schreiben, der alle ausgewählten Dokumente öffnet und speichert. Mit dem Agent kann ich ein Feld aktualisieren. Ich möchte aber nur das Dokument öffnen und speichern. An der Stelle ????????????????????? aktualisiere ich mein Feld doc.ibb_aktualisierer = "Wert", hier möchte ich jetzt aber das Dokument nur öffnen und nicht das Feld aktualisieren.

Option Public
Option Declare

Sub Initialize
   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.Save( False, True )
      Set doc = collection.GetNextDocument( doc)
   Wend
   
End Sub
Titel: Re: Dokumente in Ansicht öffnen und speichern
Beitrag von: Peter Klett am 26.07.17 - 10:30:12
Soll das Dokument wirklich geöffnet werden? Also sichtbar im Client?

Wieviele Dokumente?
Warum?

Wenn es nicht wirklich einen zwingenden Grund gibt, würde ich das automatisierte Öffnen - Speichern - Schließen umgehen.
Titel: Re: Dokumente in Ansicht öffnen und speichern
Beitrag von: Kaljamam am 26.07.17 - 10:52:11
Der Hintergrund ist folgender:
Über einen DBLookUp

_tempUser := Vorname + " " + Name;
@If(_tempUser = ""; ""; _tempMailDB := @DbLookup("":"NoCache";"xxxxxxx":"cosmos/bim/stellenb.nsf";"Stelleninhaber";_tempUser; 2))

hole ich mir die DokumentenID von Stellenbeschreibungen der Mitarbeiter in die Mitarbeiterdatenbank, um diese dem Mitarbeiter zuzuweisen.

Mein Problem, und da hab ich ein sensationelles Brett vor dem Kopf, das berechnete Textfeld(wird über einen Transferagent aktualisiert), enthält zwar dann den korrekten Wert, aber erst wenn ich das Mitarbeiterdokument am Client öffne und speichere ist das Feld auch verfügbar.

Daher wollte ich mir einen Agenten basteln, der automatisch alle Dokumente öffnet und speichert, damit ich nicht alle Mitarbeiterdokumente manuell aufmachen und speichern muss.  :-[
Titel: Re: Dokumente in Ansicht öffnen und speichern
Beitrag von: Peter Klett am 26.07.17 - 11:26:39
Die richtige Vorgehensweise für solche Fälle ist, die Berechnungen im Script nachzubauen und das Ergebnis in die Dokumente zu schreiben, ohne sie zu öffnen.

Wenn das Feld so berechnet ist, wie die Formel vermuten lässt, hilft auch ein Formelagent mit @Command ([ToolsRefreshSelectedDocs])
Titel: Re: Dokumente in Ansicht öffnen und speichern
Beitrag von: Kaljamam am 27.07.17 - 08:41:43
Vielen Dank! Das war genau das, was ich gesucht habe!  :)

DBLookUp sollte auch korrekter Weise so aussehen.

tempUser := Vorname + " " + Name;
@If(@IsError(@DbLookup("":"NoCache";"xxxxxxxxx":"cosmos/bim/stellenb.nsf";"Stelleninhaber";_tempUser; 2 )); _tempMailDB := ""; _tempMailDB := @DbLookup("":"NoCache";"xxxxxxx":"cosmos/bim/stellenb.nsf";"Stelleninhaber";_tempUser; 2));
Titel: Re: Dokumente in Ansicht öffnen und speichern
Beitrag von: Peter Klett am 27.07.17 - 09:05:46
An dieser Stelle ist Performance vielleicht nicht so wichtig, aber Du kannst Dir ein DBLookup sparen

_tempUser := Vorname + " " + Name;
_temp := @DbLookup("":"NoCache";"xxxxxxxxx":"cosmos/bim/stellenb.nsf";"Stelleninhaber";_tempUser; 2 );
_tempMailDB := @If (@IsError (_temp); ""; _temp);