Autor Thema: @SetProfileField funktioniert nicht zuverlässig  (Gelesen 2368 mal)

Offline Silvio

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • für jedes Problem gibt es eine Lösung (W.v.B.)
@SetProfileField funktioniert nicht zuverlässig
« am: 01.07.03 - 12:00:28 »
Hallo zusammen

Wiedermal eine Herrausforderung die ich nicht meistere. Über ein SmartIcon führe ich folgende @F aus:
@Command([FileOpenDatabase]; "":"Entwicklung\\EntwicklungDb.nsf"; ""; ""; 0; 1 ); @SetProfileField( "edbprofile"; "SnipetsOfTheDay"; "1" )

Diese sollte( tuts aber nicht immer - eher selten ??? ) das ProfileFeld SnipetsOfTheDay = "1" setzen. Dieser Wert sollte bereits im Datenbank Script - Initialize( od. PostOpen ) zuverlässig lesbar sein.

PS: Mit dem Debugger & NotesPEEK kann dieses flasche Verhalten verfolgt werden.

Hat einer eine Idee woher dieses verzögerliche Verhalten kommt, und wie dieses zuverlässig zu Handhaben ist.

Danke für die Tipps
Silvio
« Letzte Änderung: 01.07.03 - 12:01:49 von Silvio »
Gruss aus der Schweiz
Silvio
IBM Certified System Administrator
Lotus Notes and Domino 8.5

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #1 am: 01.07.03 - 12:06:17 »
Ähhh, warum setzt Du den Wert im Profil Dokument nicht einfach im Initialize Event der Datenbank?

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline Silvio

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • für jedes Problem gibt es eine Lösung (W.v.B.)
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #2 am: 01.07.03 - 14:27:44 »
Die Db soll 'erfahren' ob sie jetzt per SmartIcon von irgendwoher ODER direkt mit Doppelklick(o.ä.) geöffnet worden ist. Damit habe ich die Kontrolle über das Verhalten der Datenbank um z.B. autom. ein Agent starten oder neues Dokument anlegen etc., oder die Db gleich wieder schliessen ;D.
Anwendung soll das in einer Entwicklungs-Datenbank finden die auch sogenannte 'SnipetsOfTheDay' aufnimmt. Eine art Zwischenablage die sich mit 1x klicken in den Vordergrund stellt - ich mach meine Copy-Paste aktionen etc. - und mit ESC wird die Db wieder verlassen ohnen das Zeit verloren geht mit wechseln zwischen Client & Designer. :D

Silvio
Gruss aus der Schweiz
Silvio
IBM Certified System Administrator
Lotus Notes and Domino 8.5

Glombi

  • Gast
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #3 am: 01.07.03 - 14:36:21 »
Hi,
aslo für diesen Fall würde ich kein Profil verwenden, sondern die gute alte NOTES.INI.
Ich bin mir auch nicht sicher, ob der Wert auch vor dem Ausführen des Postopen der Datenbank bereits im profil steht.

Also: Du kannst Das Smarticon wie folgt programmieren:
ENVIRONMENT SnipetsOfTheDay="1"
@Command([FileOpenDatabase]; "":"Entwicklung\\EntwicklungDb.nsf"; ""; ""; 0; 1 )

Im Postopen der Datenbank dann ich Script den NOTES.INI Wert auslesen.

Dim session As New NotesSession
Dim SnipetsOfTheDay As String
SnipetsOfTheDay = session.GetEnvironmentString( "SnipetsOfTheDay" )

Und dann wieder zurücksetzen
Call session.SetEnvironmentVar( "SnipetsOfTheDay", "" )


Andreas

Offline Silvio

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • für jedes Problem gibt es eine Lösung (W.v.B.)
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #4 am: 01.07.03 - 14:52:23 »
Tja, das habe ich bereits schon lange vorher versucht mit dem Resultat das die NOTES.INI noch langsamer auf Veränderungen reagiert. D.h. vom Zeitpunkt des reinschreibens bis zum auslesen wird ja das Betriebssystem bemüht, dass bekanntlicherweise auf Workstations eine längere Gedankenpause einlegt als auf einem Server. Das Problem haben z.B. auch alle Entwickler, die Dateien in die Db Anhängen b.z.w. lösen und sofort darauf zugreiffen möchten.

Silvio
Gruss aus der Schweiz
Silvio
IBM Certified System Administrator
Lotus Notes and Domino 8.5

Glombi

  • Gast
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #5 am: 01.07.03 - 14:56:45 »
Du könntest in dem SmartIcon einen Script Agenten aufrufen, der dann das macht, was Du im Postopen sonst abfragst.

@Command([FileOpenDatabase]; "":"Entwicklung\\EntwicklungDb.nsf"; ""; ""; 0; 1 );
@Command([ToolsRunMacro];"<name des agenten>")

Andreas

Offline Silvio

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • für jedes Problem gibt es eine Lösung (W.v.B.)
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #6 am: 01.07.03 - 15:18:31 »
Ja, daran habe ich auch gedacht. Nur Agenten werden in der Db erst nach dem Postopen ausgeführt. Das ist also auch bereits(viel) zu spät, denn an diesem Punkt ist die Db bereits vollständig geöffnet und wartet nur noch auf eine Benutzeraktion.

Aber du hast mich auf die Idee gebracht den Agent gar nicht in der Db selbst abzulegen sondern in der bookmark.nsf oder pernames.nsf. Den dann könnte daraus mit @F-DbOpen - RunAgent - FileCloseWindow kurz durchgestartet werden und in der letzten Zeile öffnen ich die Db, kann das funktionieren ???

Ist zwar eine old Hosti-Holzhammermethode, aber den Versuch wert.

Silvio
Gruss aus der Schweiz
Silvio
IBM Certified System Administrator
Lotus Notes and Domino 8.5

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #7 am: 01.07.03 - 15:33:32 »
Was auch noch geht, sind die Events in den Views. Die ziehen nämlich auch vor den DB Open Events.

Meff
« Letzte Änderung: 01.07.03 - 15:33:58 von Meff »
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline Silvio

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • für jedes Problem gibt es eine Lösung (W.v.B.)
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #8 am: 01.07.03 - 15:38:52 »
Aja - Ich starte die Db mit einer Site gehen die auch vor PostOpen?

Silvio
Gruss aus der Schweiz
Silvio
IBM Certified System Administrator
Lotus Notes and Domino 8.5

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #9 am: 01.07.03 - 15:50:06 »
Das habe ich ehrlich gesagt noch nicht ausprobiert...wäre aber mal einen Versuch wert, oder?

Meff

P.S.: Poste doch bitte die Ergebnisse.
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline Silvio

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • für jedes Problem gibt es eine Lösung (W.v.B.)
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #10 am: 02.07.03 - 09:37:32 »
Ok - hier meine Lösung mit dem ich jetzt das Startverhalten einer Db steuern tu.
Funktioniert bestens !!

Silvio
Gruss aus der Schweiz
Silvio
IBM Certified System Administrator
Lotus Notes and Domino 8.5

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #11 am: 02.07.03 - 09:45:05 »
Hab ich das richtig interpretiert, Du rufst das jetzt alles in der Page auf?

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline Silvio

  • Aktives Mitglied
  • ***
  • Beiträge: 113
  • Geschlecht: Männlich
  • für jedes Problem gibt es eine Lösung (W.v.B.)
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #12 am: 02.07.03 - 11:07:30 »
Die Site benutze ich nur zum manuellen starten, also wenn ich die Db normal öffne kann ich hier auch so das akt. Snipets-Dokument bearbeiten. Wenn aber über das SmartIcon gestartet wird( Beschreibung der nötigen @F im Agenten 'SetSnipetsOfTheDay' ) siehts du die Site nie.
Dabei ist es egal in welcher Db oder App(Designer)du dich z.Zt. befindest.
Silvio
Gruss aus der Schweiz
Silvio
IBM Certified System Administrator
Lotus Notes and Domino 8.5

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:@SetProfileField funktioniert nicht zuverlässig
« Antwort #13 am: 02.07.03 - 14:30:18 »
Na, ist doch schön, wenn Du selber auf die Lösung gekommen bist und diese auch noch funzt. Setzt Du bitte den Thread noch auf erledigt?

Meff
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz