Autor Thema: Postopen Problem  (Gelesen 4261 mal)

Offline wittmann_franz

  • Aktives Mitglied
  • ***
  • Beiträge: 241
  • Geschlecht: Männlich
Postopen Problem
« 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.

Gruß
Volker

klaussal

  • Gast
Re: Postopen Problem
« Antwort #1 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.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Postopen Problem
« Antwort #2 am: 19.02.08 - 10:15:19 »
Argh, schu langscham

Darf ich Cache sagen?  ;)
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

klaussal

  • Gast
Re: Postopen Problem
« Antwort #3 am: 19.02.08 - 10:16:05 »
Nicht nur sagen, auch schreiben....

Offline wittmann_franz

  • Aktives Mitglied
  • ***
  • Beiträge: 241
  • Geschlecht: Männlich
Hört sich schlüssig an.....
« Antwort #4 am: 19.02.08 - 10:30:07 »
ist es aber nicht.   ???

Profil Dokument kommt auch nach Neustart des Clients wieder hoch.

und nu ...
Gruß
Volker

klaussal

  • Gast
Re: Postopen Problem
« Antwort #5 am: 19.02.08 - 10:40:02 »
.... und nu mal ein Versuch, was passiert, wenn du den cache löschst ?

botschi

  • Gast
Re: Postopen Problem
« Antwort #6 am: 19.02.08 - 10:42:01 »
Und die Variable _wert1 ist auch wirklich leer?

Matthias

Offline wittmann_franz

  • Aktives Mitglied
  • ***
  • Beiträge: 241
  • Geschlecht: Männlich
Re: Postopen Problem
« Antwort #7 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 ??
Gruß
Volker

botschi

  • Gast
Re: Postopen Problem
« Antwort #8 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

Offline wittmann_franz

  • Aktives Mitglied
  • ***
  • Beiträge: 241
  • Geschlecht: Männlich
Re: Postopen Problem
« Antwort #9 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  ???
Gruß
Volker

botschi

  • Gast
Re: Postopen Problem
« Antwort #10 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


Offline wittmann_franz

  • Aktives Mitglied
  • ***
  • Beiträge: 241
  • Geschlecht: Männlich
Re: Postopen Problem
« Antwort #11 am: 19.02.08 - 11:37:12 »
Da habe ich mich wohl nicht richtig ausgedrückt.
Das @ Prompt befindet sich in einer Ansichtsaktion
Gruß
Volker

botschi

  • Gast
Re: Postopen Problem
« Antwort #12 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

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Postopen Problem
« Antwort #13 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
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Postopen Problem
« Antwort #15 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

Offline wittmann_franz

  • Aktives Mitglied
  • ***
  • Beiträge: 241
  • Geschlecht: Männlich
Re: Postopen Problem
« Antwort #16 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

Gruß
Volker

botschi

  • Gast
Re: Postopen Problem
« Antwort #17 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

Offline wittmann_franz

  • Aktives Mitglied
  • ***
  • Beiträge: 241
  • Geschlecht: Männlich
Re: Postopen Problem
« Antwort #18 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?

Gruß
Volker

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz