Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: seal am 12.01.12 - 14:34:47

Titel: Aktualisierungsproblem bei getProfileDocument
Beitrag von: seal am 12.01.12 - 14:34:47
Hallo zusammen,

also ich habe folgende Ausgangssituation. Ich wähle einen Empfänger über eine Dialogbox aus. Wenn ich diesen ausgeählt habe, gehe ich in sein persönliches Profildokument und schaue, ob dieser einen Vertretter aktiviert und eingetragen hat. Funktioniert alles wunderbar, aber ich habe ein Aktualitätsproblem. Wenn er ausgewählte Empfänger seinen Vertretter ausgeschaltet habe und ich ihm die MAil wieder schicke, dann erkennt er das nicht gleich. Erst wenn ich Notes bei mir schließe, öffne und danach nochmal versuche. -> CACHE???

Kann ich Notes irgenwie zwingen den Cache zu aktualisieren bevor ich mir das Profil holle oder nochmal aktualisiern bevor ich mir die Werte daraus ziehe?

Ich holle mir das ProfilDoc des empfängers mit dem Aufruf:

Set verteilerDoc = db.Getprofiledocument("(ProfilePersonal)", fromName.Canonical)

Viele Grüße,
seal
Titel: Re: Aktualisierungsproblem bei getProfileDocument
Beitrag von: ascabg am 12.01.12 - 14:50:35
Hallo,

Gemein gesagt.
Arbeite nicht mit Profile-Dokumenten, sondern mit "normalen" Dokumenten.


Andreas
Titel: Re: Aktualisierungsproblem bei getProfileDocument
Beitrag von: koehlerbv am 12.01.12 - 14:57:30
Das, was Du da beobachtest, ist exakt das, wofür ProfileDocuments geschaffen wurden: Einmaliges auslesen und dann sehr schneller Zugriff.
Eine Aktulaisierung findet nur statt (zunächst nur im Speicher!)
- wenn die DB geöffnet / das ProfileDocument erstmals geselen wird
- wenn der Benutzer eine Änderung durchführt (und das bekommt erstmal nur der Benutzer mit!).

Wenn das Verhalten nicht passt, darfst Du natürlicherweise keine ProfileDocuments verwenden!

Bernhard
Titel: Re: Aktualisierungsproblem bei getProfileDocument
Beitrag von: seal am 12.01.12 - 15:15:15
Hallo zusammen,

vielen Dank für die Hinweise.
Hätte halt gerne die Vorzüge von ProfilDocuments und normalen Documents benötigt.

Geht leider nicht, muss ich damit leben. :-)

Titel: Re: Aktualisierungsproblem bei getProfileDocument
Beitrag von: pram am 12.01.12 - 22:08:25
Das Profildokument kannst du so aktualisieren:

Code
set proDoc = db.getProfileDocument("pd") ' gecachedes Doc
noteID =  proDoc.noteID ' NoteID merken
delete proDoc ' Doc aus Speicher werfen und über die NoteID wieder holen
set proDoc = db.getDocumentById(noteID) ' gespeicherter Inhalt, allerdings kein "echtes" Profil
set tmpDoc = net NotesDocument(db) ' Zwischenspeicher
call proDoc .copyAllItems(tmpDoc) 
delete proDoc ' das proDoc aus dem Speicher werfen, da es kein "echtes" Profil ist, weil es nicht mit getProfileDocument geholt wurde

set proDoc = db.getProfileDocument("pd") ' gecachedes Doc (mit alten Daten)
call tmpDoc.copyAllItems(proDoc) ' in tmpDoc ist der aktuelle Inhalt
proDoc.timestamp = now ' irgend ein Feld verändern
call proDoc.save(false, false) ' damit es gespeichert wird

zugegeben nicht sehr elegant. Man benötigt dies aber z.B. wenn man einen "reopen" beim Editieren eines Profils ausführt.

Gruß
Roland
Titel: Re: Aktualisierungsproblem bei getProfileDocument
Beitrag von: iukhdh am 16.11.15 - 17:25:29
Der Fred ist zwar schon ein paar Jahre alt, aber da ich gerade ein ähnliches Problem habe, doch kurz eine ergänzende Frage dazu:

Ich habe ein Konfig Dokument, in dem ich in einer Fundsachendatenbank eine laufende Fundsachennummer hinterlege. Wenn neue Fundsachen eingegeben werden, wird diese Nummer immer um eins erhöht, was bisher mit einer Sachbearbeiterin auch kein Problem was.
Nun arbeiten 2 Personen abwechselnd mit der DB, und es passiert was weiter oben schon erklärt wurde, es gibt plötzlich doppelte Fundsachennummern, da beide zeitgleich die Datenbank starten und damit das Konfigdokument im Cache haben.

Meine Frage:

Wie meint ihr das mit dem Hinweis, mit "normalen Dokumenten" zu arbeiten?

Soll ich mir ein -ich nenne es mal so- Stammdatendokument basteln, dass ich irgendwo in einer versteckten Ansicht habe, das ich mir dann z.B. mit Script suche, dort die Werte auslese und ändere?

Oder gibt es da noch einen anderen Ansatz?

Vielen Dank für eine Ergänzung

Thomas
Titel: Re: Aktualisierungsproblem bei getProfileDocument
Beitrag von: Peter Klett am 16.11.15 - 21:50:48
Meine Frage:

Wie meint ihr das mit dem Hinweis, mit "normalen Dokumenten" zu arbeiten?

Soll ich mir ein -ich nenne es mal so- Stammdatendokument basteln, dass ich irgendwo in einer versteckten Ansicht habe, das ich mir dann z.B. mit Script suche, dort die Werte auslese und ändere?
Genau so.