Änderungen wirksam bekommen

ich habe ein Script, dass verschiedene Fields teilweise neu anlegt, teilweise überschreibt.
Wenn das Script die Dokemente bearbeitet hat, „sieht“ Notes die Änderungen nicht (also wenn ich frage ob field=1, dann „sieht“ er es nicht, obwohl genau das drinsteht).
Erst wenn ich das Dokoment manuell nochmal abspeicher (keine änderungen), dann funktioniert es.
Wor liegt der Fehler?
Könnte man den manuellen FileEdit-,FileSave-Vorgang automatiesieren, so dass er vom Script aus gestartet wird?

Vielen dank für die anderen Antworten auf meine Fragen :smile:

Ach ja:
falls es relevant ist:
ich bearbeite ein Notesdukument kein UIDokument.

Hallo Stefan,

ich habe ein Script, dass verschiedene Fields teilweise neu
anlegt, teilweise überschreibt.
Wenn das Script die Dokemente bearbeitet hat, „sieht“ Notes
die Änderungen nicht (also wenn ich frage ob field=1, dann
„sieht“ er es nicht, obwohl genau das drinsteht).
Erst wenn ich das Dokoment manuell nochmal abspeicher (keine
änderungen), dann funktioniert es.
Wor liegt der Fehler?
Könnte man den manuellen FileEdit-,FileSave-Vorgang
automatiesieren, so dass er vom Script aus gestartet wird?

Ich habe auch noch nie verstanden, warum Notes das so macht, aber es liegt (höchstwahrscheinlich) am SUMMARY-Flag. Sieh Dir mal die Eigenschaften eines solchen Dokuments an, darin die Feldinhalte. Im Kopf der Feldbeschreibung gibt es eine Zeile, die Auskunft über die gesetzten Flags gibt, z.B. READ ACCESS, NAMES usw. Bei „normal“ erstellten Dokumenten hat jedes Feld (ausser RichText) das SUMMARY-Flag gesetzt, kann also in Views angezeigt werden. Bei Feldern, die mittels LotusScript erstellt werden, muss Du dieses Flag manuell setzen mit x.IsSummary=True.

Latürnich ist es auch möglich, dass ich damit voll daneben liege…

HTH
Thomas Bahn

Hallo Stefan,

Frage 1: Hast du dein Script in einem Agent laufen, oder ist es Bestandteil des Forms?
Frage 2: Wo willst du de Änderungen sehen? Im Form oder in dem View, das die Daten anzeigt.

folgende Wege sind bei den verschiedenen Kombinationen der beiden Fragen möglich:
1 Script im Form und Anzeige der Daten sofort nach Änderung.
Call doc.save(true,true)
Call uidoc.reload
call uidoc.refresh
Alternativ dazu UNID Merken, Dokument schließen und wieder öffnen. Wirkt speziell bei RTItem Befehlen Wunder.
2 Script in Form, Anzeigen der Daten in einer ansicht.
Call Doc.Save(True,True)
Call View.Refresh()
3 Script in Agent, Anzeige der neu berechneten Daten in einer Form, sollte eigentlich von sich aus funktionieren
4 Script in Agent, Anzeige der Daten in einer Ansicht
Siehe 2

Beliebige andere Kombinationen sind natürlich auch möglich.

Wenn du allerdings den FT Index meinst, wenn du „Sieht“ sagst, dann musst du den Indexer jeweils immer neu starten call database.updateftindex(). Davon würde ich allerdings abraten.
Performance!! der FT indexer wird auf dem Server ja sowieso regelmäßig durchgeführt.

Gruß Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]