AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
21.09.21 - 18:45:44
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  HCL Notes / Domino / Diverses
| |-+  Entwicklung (Moderatoren: eknori, fritandr, koehlerbv, Tode)
| | |-+  Profildokument nur einmal öffnen (Eine Instanz)
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Profildokument nur einmal öffnen (Eine Instanz)  (Gelesen 1511 mal)
Legolas
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 422



« am: 07.05.21 - 10:15:40 »

Hallo Forum,

ich habe das Problem, dass ich ein Profildokument per Script und/oder per @Formel öffne.

Problem:
Bei jedem Klick auf den Button wird das Profildokument als neus Instanz (neuer Reiter) geöffnet. Das führt natürlich zwangweise zu Problemen,  wenn ich dann aus Versehen in den verschiedenen Instanzen Änderungen vornehme und diese Speichere (überscheibung evtl. Änderungen usw.).

Beim Aufruf eine nornalen Notesdocumentes mit der Funktion   ws.editDocument() gibt es den letzten Parameter der dafür sorgt, dass immer nur eine Instanz des Dokuments offen ist.

Gibt es sowas nicht für die Profildokumente?
Oder habt ihre eine Workaround?

Grüße
Bernd
Gespeichert

Arbeite klug, nicht hart.
Ralf_B
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 122


« Antworten #1 am: 07.05.21 - 15:48:15 »

Hallo Bernd,

wenn ich das richtig interpretiere, ich denke mal, hier sollte das Konzept geprüft werden.
Profildokumente haben andere Eigenschaften und Beschränkungen als normale Dokumente.
Profildokumente nutze ich immer nur intern , für den Programmierer / die Datenbank selbst oder Administratoren um spezifische Angaben eben nicht im Code eintragen zu müssen.
Halt für weitgehend , sich nicht ändernde Daten... Exportdaten .. Schnittstellendaten .... Pfade... Anmeldedaten.
Ich hatte mal DB's die zu viele Profildokumente hatten ........  das war nicht wirklich Spassig.

Warum  muss denn, in Deinem Fall, ein Button existieren um die Dokumente zu ändern / zu erzeugen ?
Wer benutzt diese(n Button und für welche Angaben (DB Angaben / User Abgaben ...) ?
Wer nutzt diese Daten aus den Profildokumenten ?

Gruss
Ralf
« Letzte Änderung: 07.05.21 - 15:51:05 von Ralf_B » Gespeichert
ronka
Senior Mitglied
****
Offline Offline

Beiträge: 334


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #2 am: 07.05.21 - 19:27:17 »

Ich würde sogar noch weiter gehen mit den "falsche" verwendungszwecken..

Ein Profil Dokument wird im Speicher des Servers (wenn server basierte datenbank) gehalten, und geladen mit den ersten Öffnen der Datenbank, und erst gespeichert wenn der letzte benutzer der Datenbank verlassen hat.

Damit ist ein Profil dokument NICHT geeignet um informationen zwischen zu speichern zwischen verschiedene stellen (user / dokumente).

Wenn der Datenbank Lokal ist, passiert das gleiche, aber dann halt lokal. Erst wenn der DB verlassen wird, wird gespeichert..

Ein Profil dokument ist einen "schlechte" mischung aus Daten und Design dokument, und eigentlich nur geeignet grund werten einmalig abzulegen und mehrfach auszulesen.
Wenn zu viele Änderungen gemacht werden, geht es schief. Garantiert.
Es ist auch nicht "geeignet" um mehrfach zu öffnen... wie du hier selber gemerkt hast.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
Legolas
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 422



« Antworten #3 am: 10.05.21 - 08:23:41 »

Hallo Zusammen,

erst mal Danke für die Rückmeldungen.
Es gibt hier wohl ein Missverständnis.

Das Konfigurations-Profildokument kann nur vom Administrator aufgerufen werden um in diesem werden auch nur grundlegende statische Einstellungen zur Anwendung konfiguriert.
Die Anwendung läuft auch nur auf dem Server.

Trotzdem kommt es bei unseren Kunden immer wieder mal vor, dass auch die gut geschulten Notes Admins Wink aus Versehen mehrere gleiche Profildoikumente öffnen, da diese wärend der Kofiguration teilweise einzutragende Infos erst in ihren Systemen nachschauen müssen.
Dann kann kommt es eben immer wieder mal vor, dass der Admin nicht direkt in das bereits geöffnete Profildokument geht, sondern nochmals den Button zum Öffnen des Profildokuments klickt. Und somit wird eine weiter Instanz (Dokument) geöffnet.
Fällt dem Admin das nicht auf, konfiguriert er die Anwendung nun in zwei oder mehr "gleichen" Profildokumenten. Speichert er nun diese ohne "nachzudenken" alle einfach ab, überscheiben sich die Daten.

Daher die Frage: Gibt es einen Befehl, mit dem ich das Profildokument nur einmalig im UI öffnen kann?

Wie z.B. der Befehl für die normalen Notsdokumente:  
Call ws.Editdocument(True, doc, false, "", Nothing, False)
Hinweis: Hier bewirkt der letzte Parameter, dass kein weiter neue Instanz eines Dokuments im UI geöffnet wird sondern zur bereits geöffnete Instanz gesprungen wird.


Die folgenden Befele öffnen bei jedem Klick das Profildokument als neue weitere Instanz:
Und das will ich eben verhindern.

1) @Command([EditProfile]; "dbsetup")
2) ws.Getprofiledocument("dbsetup")


Grüße
Bernd

 
Gespeichert

Arbeite klug, nicht hart.
Ralf_B
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 122


« Antworten #4 am: 10.05.21 - 10:15:01 »

Hallo Bernd,

bei solchen Admins kenne ich nur eine Lösung :
Eine Maske / Dokument erstellen wo die Admins die Daten eingeben können und einen Button, womit die Daten übertragen werden.
Dann können die eingegebenen Werte auch gleich auf "Gültigkeit" überprüft werden.
Also: Direkten Zugriff auf das Profildokument gar nicht erst anbieten.
Auch kann ich dann Zugriffe einschränken und .... .

Gruss
Ralf
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11561


« Antworten #5 am: 10.05.21 - 10:23:38 »

Zitat
Daher die Frage: Gibt es einen Befehl, mit dem ich das Profildokument nur einmalig im UI öffnen kann?

Nein, leider gibt es sowas nicht

@Ralf

Damit verlagerst Du das problem aber nur. Klar kann beim Speichern der Maske Backend Code ausgeführt werden, der seinerseits das Profildokument aktualisiert. Aber auch hier kann der Admin mehrere Dokumente öffnen und per save&close werden dann die unterschiedlichen feldwerte in des profildokument geschrieben.

Meine Idee ist, beim Öffnen des profildokuments einen notes.ini Eintrag zu schreiben. Klickt der Admin noch einmal auf den Button, dann wird geprüft, ob der Eintrag gesetzt ist. An der Stelle bricht der code dann mit einer freundlichen Meldung ab, dass schon ein PDoc geöffnet ist. Beim Speichern wird der notes.ini Eintrag wieder gelöscht

Habe es selber noch nicht umgesetzt, werde das aber mal testen.
Gespeichert
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 11561


« Antworten #6 am: 10.05.21 - 10:41:01 »

Ich habe es mal ausprobiert.

Code:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim session As New NotesSession
If (Trim(session.GetEnvironmentString("midpointsProfileDoc",True))<>"") Then
Msgbox "Profile Doc already open"
continue = False
End If

Call session.SetEnvironmentVar("midpointsProfileDoc",  source.Document.UniversalID, True)
End Sub

Code:
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Call session.SetEnvironmentVar("midpointsProfileDoc",  "", True)
End Sub

Beim ersten Öffnen wird die UniversalId des PDoc in die notes.ini geschrieben. Versucht der Admin ein zweites Mal, das PDoc zu öffnen, dann bekommt er eine Fehlermeldung. Beim Schließen des PDoc wird der ini Eintrag wieder gelöscht.
Gespeichert
Legolas
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 422



« Antworten #7 am: 10.05.21 - 10:47:28 »

Danke an alle.
ich werde die Lösung mit dem INI Eintrag umsetzen.

Grüße
Bernd
Gespeichert

Arbeite klug, nicht hart.
Ralf_B
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 122


« Antworten #8 am: 10.05.21 - 11:01:28 »

Ich denke mal, die Lösung muss zur Situation passen.
Ob die Gefahr besteht, dass mehrere Admins auf das selbe Prof Dok zugreifen oder die Admins mehrere Notes Clients nutzen ......
Gespeichert
ronka
Senior Mitglied
****
Offline Offline

Beiträge: 334


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #9 am: 11.05.21 - 18:32:36 »

Alternativ option.

Über ein Timer das Profil Dokument nach X Minuten Zwangs schließen, damit es nicht auf bleibt.. "Nerv popup" erstellen das so lange meckert das es auf ist, bis es geschlossen wird.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: