Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: wittmann_franz am 19.02.08 - 10:09:24

Titel: Postopen Problem
Beitrag von: wittmann_franz am 19.02.08 - 10:09:24
Hallo zusammen,

folgende Formel befindet sich im Postopen einer Datenbank:

_wert1 := @GetProfileField("(DBProfil)" ; "Prof_DB_Name") ;
@If(_wert1 = "" ; @Command([EditProfile] ; "(DBProfil)"); "")

Leider öffnet das Profil Dokument auch dann, sprich jedesmal beim Start der Datenbank, wenn das Feld schon gefüllt ist.
Das Merkwürdige daran ist, dass es in Datenbanken die vor der  Version 7 entwickelt worden funktioniert.

Wichtig vielleicht noch, das die Grundlage zu dieser Datenbank die discsw7.ntf ist.

Server 7.0.2
Client  7.0.2

Vielen Dank schon mal für Eure Hilfe.

Titel: Re: Postopen Problem
Beitrag von: klaussal am 19.02.08 - 10:14:13
Ich würde ich auf die allg. Problematik von Profil-Dokumente tippen.

Code
Ruft ein Feld eines Profildokuments ab und speichert seinen Wert bis zum Ende der Sitzung im Cache.
Titel: Re: Postopen Problem
Beitrag von: DerAndre am 19.02.08 - 10:15:19
Argh, schu langscham

Darf ich Cache sagen?  ;)
Titel: Re: Postopen Problem
Beitrag von: klaussal am 19.02.08 - 10:16:05
Nicht nur sagen, auch schreiben....
Titel: Hört sich schlüssig an.....
Beitrag von: wittmann_franz am 19.02.08 - 10:30:07
ist es aber nicht.   ???

Profil Dokument kommt auch nach Neustart des Clients wieder hoch.

und nu ...
Titel: Re: Postopen Problem
Beitrag von: klaussal am 19.02.08 - 10:40:02
.... und nu mal ein Versuch, was passiert, wenn du den cache löschst ?
Titel: Re: Postopen Problem
Beitrag von: botschi am 19.02.08 - 10:42:01
Und die Variable _wert1 ist auch wirklich leer?

Matthias
Titel: Re: Postopen Problem
Beitrag von: wittmann_franz am 19.02.08 - 10:44:34
@klauss
cache.ndk gelöscht, Notes neu gestartet, gleiches Problem

@botschi
nein, ist sie nicht, deshalb soll das Profildokument ja auch nicht erscheinen, oder denke ich da grad falsch herum ??
Titel: Re: Postopen Problem
Beitrag von: botschi am 19.02.08 - 10:53:15
Falsche Replik oder lokale DB kann man ausschließen?
Hast Du Dir die Variable mal ausgeben lassen oder siehst Du das am Dokument, dass die Variable gefüllt ist/sein muss?

Du denkst übrigens nicht falsch herum  ;D


Matthias
Titel: Re: Postopen Problem
Beitrag von: wittmann_franz am 19.02.08 - 10:59:48
Da bin ich ja beruhigt.   :D

Also die DB liegt vorerst noch lokal, aber warum ist das in Bezug auf das Profildokument wichtig ?

Das das Feld einen Wert besitzt sehe ich im Dokument selbst.
Das komische ist wenn ich die Variable z.Bsp per @Prompt in einem Aktionsbutton auslese bringt er mir den Wert zurück.
Im Postopen das gleiche bleibt der Wert leer  ???
Titel: Re: Postopen Problem
Beitrag von: botschi am 19.02.08 - 11:31:46
Man kann ganz leicht die DB´s verwechseln, wenn es Repliken oder lokale DB´s gibt. Deswegen meine ich das. Aufm Server öffnen und Lokal das Profildokument anschauen und sich wundern.

Pack den Code doch mal in eine Ansichtsaktion. Wenn es sich dann richtig verhält, wird das Profildokument vielleicht später gefüllt (und ist deswegen im Postopen noch leer)  ???.

Matthias

Titel: Re: Postopen Problem
Beitrag von: wittmann_franz am 19.02.08 - 11:37:12
Da habe ich mich wohl nicht richtig ausgedrückt.
Das @ Prompt befindet sich in einer Ansichtsaktion
Titel: Re: Postopen Problem
Beitrag von: botschi am 19.02.08 - 11:58:03
Kannst Du den 3-Zeiler nicht mal mit Script machen und debuggen? Ich vermute, dass das Profildokument im Postopen nicht (richtig) gefüllt ist...

Matthias
Titel: Re: Postopen Problem
Beitrag von: DAU-in am 19.02.08 - 12:04:14
Geht er beim Öffnen denn wirklich in die Postopen-Routine der DB?

Hängt das nicht auch von der Art des Öffnens der DB ab, ob das Event wirklich durchlaufen wird?

Ich habe irgendwas im Hinterkopf, dass das Event nicht immer durchlaufen wird.

Grüsse

Dau-in
Titel: Re: Postopen Problem
Beitrag von: DAU-in am 19.02.08 - 12:06:13
http://atnotes.de/index.php?topic=35186.0
http://atnotes.de/index.php?topic=28185.0
Titel: Re: Postopen Problem
Beitrag von: koehlerbv am 19.02.08 - 12:07:21
Das stimmt wohl, dass das PostOpen nicht immer durchlaufen wird - in diesem Fall aber auf jeden Fall, sonst würde das ProfileDocument ja nicht geöffnet ...

Bernhard
Titel: Re: Postopen Problem
Beitrag von: wittmann_franz am 19.02.08 - 12:15:50
Script kann ich leider nicht sehr gut.

Kann mir jemand zum Test die Formel in Script umschreiben.?

Vielen Dank

Titel: Re: Postopen Problem
Beitrag von: botschi am 19.02.08 - 13:02:37
Code
Sub Postopen(Source As Notesuidatabase)
	
	Dim s As New NotesSession
	Dim Profil As NotesDocument
	Dim DB As NotesDatabase
	Dim ws As New NotesUIWorkspace
	
	Set DB = s.CurrentDatabase
	Set Profil = DB.GetProfileDocument("(DBProfil)") ' das profildokument holen	
	
	If Profil.Prof_DB_Name(0) = "" Then ' wenn das feld "Prof_DB_Name" leer ist, dann
		Call ws.EditDocument(False, Profil)
	Else
		Msgbox Profil.Prof_DB_Name(0) ' sonst wert in messagebox anzeigen
	End If
	
	
End Sub

Beim Debuggen gibts einen Fehler, dass man vom Arbeitsbereich aus das Dok nicht öffnen kann. Wenn der Debugger aus ist, gehts.


Matthias
Titel: Re: Postopen Problem
Beitrag von: wittmann_franz am 21.02.08 - 14:33:05
Da bin ich wieder,

mit dem Script hat es geklappt.
Vielen Dank dafür.

Aber gibt es für dieses Phänomen irgendeine Erklärung, warum die Formel nicht mehr funktioniert?