Autor Thema: isuidocopen  (Gelesen 4041 mal)

Offline my head

  • Aktives Mitglied
  • ***
  • Beiträge: 226
  • Geschlecht: Männlich
isuidocopen
« am: 03.09.04 - 08:30:08 »

Set view = db.GetView("tkvwzukunft")
Set vc = view.AllEntries
Set entry = vc.GetFirstEntry
While Not (entry Is Nothing)
   Set doc = entry.Document
   If doc.IsUIDocOpen Then


falls in der ansicht, das doc ist, das ich im moment im frontend bearbeite musste ich doch in den Bereich des "if" kommen, ist aber nicht so... muss ich noch irgendwas beachten??

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re:isuidocopen
« Antwort #1 am: 03.09.04 - 08:40:56 »
FALSCH ! Du solltest Dir die Hilfe zu isUIDocOpen durchlesen, und nicht einfach vom Namen auf die Funktion schliessen...

In der Hilfe steht nämlich:
Read-only. Indicates whether a NotesDocument object (back-end document) is accessed through a NotesUIDocument object (front-end document).

DAS HEISST: Dieser Parameter liefert nur DANN True zurück, wenn Du das doc aus einem geöffneten UIDOC instantiiert hast (also so: doc = uidoc.Document)

HTH
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: isuidocopen
« Antwort #2 am: 10.05.05 - 12:43:52 »
gibt es da irgent eine andere Möglichkeit, ein document für denn benutzer zu "Sperren", der es schon geöffnet hat? --> so das ein benutzer ein dokument nur einmal offen haben kann?

über die ini ist es nicht so gut, da ich mehrere doks speichern müsste, wann datenmüll verursacht.

einen flag ins dokument zu setzen geht bei mir auch nicht, da im doc angezeigt wird, wann es zuletzt bearbeitet wurde. ??? ??? ???
mit besten Grüßen

Markus Petzold

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: isuidocopen
« Antwort #3 am: 10.05.05 - 13:27:47 »
nicht im Uidoc aber im Doc.
Doc.Lock und Doc.Lockprovisional sind die Methoden die du da gebrauchen kannst. Vorausgesetzt du willst das nicht im Web machen da funktioniert das nicht.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: isuidocopen
« Antwort #4 am: 10.05.05 - 16:08:09 »
nein ich will das nicht im web machen, ich male mir aber gerade aus, was passiert, wenn das NDS mal wieder am running ist: dann wäre das Dokument für die person für immer gesperrt!?

das ding beim öffnen locken und beim schließen wieder unlocken, is ja sonst kein thema, aber das is ne große db, die auch sehr oft genutzt wird, wenn da immer mal ein paar leute ausgesperrt werden?

Gibt es wirklich keine möglichkeit alle geöffneten docs zu finden???

mit besten Grüßen

Markus Petzold

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: isuidocopen
« Antwort #5 am: 10.05.05 - 16:12:40 »
nicht ohne einen Flag mit entsprechender Speicherung zu setzen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: isuidocopen
« Antwort #6 am: 10.05.05 - 16:15:42 »
Unterdessen beherrscht Domino das vermutlich, dass agestürzte Clients Dokumente nicht mehr sperren - war am Anfang ein Problem, das sich durch erneutes Oeffnen des Dokumentes durch den betreffenden Client leicht lösen liess. Ansonsten bleibt Dir nur, wie Thomas schon geschrieben hat, ein Flag im Dokument zu setzen oder ein spezielles Kontrolldokument zu führen, in dem Du die geöffneten Dokumente tracest. Beide Versionen haben aber dasselbe Problem und keine Systemlösung "... when NSD is running instead of sleeping ...."
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: isuidocopen
« Antwort #7 am: 10.05.05 - 16:26:49 »
gibt es da irgent eine andere Möglichkeit, ein document für denn benutzer zu "Sperren", der es schon geöffnet hat? --> so das ein benutzer ein dokument nur einmal offen haben kann?

ich glaube, alle unsere "Lösungsversuche" gehen hier eindeutig an der Frage vorbei... oder aber die Frage ist falsch gestellt. Den oben gequoteten Satz verstehe ich so, dass ein Benutzer ein Dokument geöffnet hat, und dieses nicht erneut öffnen dürfen soll (weil es schon geöffnet ist).

Wenn ich das richtig vertsanden habe, dann frage ich: Warum !?
Notes sorgt doch automatisch dafür, dass ich nicht mehrere Instanzen des selben Dokuments öffnen kann: öffne ich zum Beispiel eine Mail, wechsle dann in die Inbox zurück und öffne das Mail nochmal, dann lande ich im selben Fenster, nicht in einem neuen... Das ist in jeder Datenbank so.

Vielleicht kannst Du uns mal kurz erklären, ob Du wirklich eine "locking"- Funktionalität meinst (wie sie R6 inzwischen eben standardmässig bietet), oder vielleicht doch was ganz anderes...

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: isuidocopen
« Antwort #8 am: 10.05.05 - 16:31:54 »
Öffnen kann man ein Dokument aber trotzdem zweimal, Torsten: Einmal im Lesemodus, einmal im Editiermodus.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: isuidocopen
« Antwort #9 am: 10.05.05 - 16:34:21 »
Torsten, das ist normalerweise so, wenn Dus im Client machst, aber nicht unbedingt, wenn Dus über LotusScript zum Bleistift machst. Neuerdings gibts da einen Parameter, mit dem man es erzwingen kann. Leider weiss ich nicht auswendig, unter welchen Umständen Notes dasselbe Fenster/Tab verwendet oder eine neue UI-Instanz erstellt.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: isuidocopen
« Antwort #10 am: 10.05.05 - 17:07:07 »
natürlich gibt es Möglichkeiten, Notes dazu zu "zwingen" das Dokument in einem neuen Fenster aufzumachen ( NotesUIWorkspace.EditDocument( ........ , newInstance ) ),
Aber wenn ich weiss, dass ich das Dokument nicht in einer neuen Instanz aufmachen will, dann nehme ich (als Entwickler) einfach den Parameter weg, dann muss ich nicht abfragen, ob das doc schon offen ist...

Und in allen anderen Fällen verhält sich Notes doch sowieso wie gewünscht.
Die Frage ist also: Wenn Notes eine neue Instanz öffnet: ist das dann ein unerwünschtes Notes- Verhalten oder einfach nur vom Programmierer so vorgegeben ?

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: isuidocopen
« Antwort #11 am: 10.05.05 - 17:37:59 »
Irrtum, Torsten, wenn Dus weglässt, dann wird eine neue Instanz geöffnet (und das war schon immer so .... :( ). Der Default ist auf True wie man in der Hilfe leicht sieht:

Zitat
newInstance
Boolean. Optional. If True (default), opens a new instance of notesDocument (parameter 2) in the UI. If False, changes focus to an existing instance of notesDocument if one exists, or to a new instance if one does not exist. This parameter does not apply if notesDocument is not specified or the document has a target frame.

Ausserdem verhält sich Notes leider nicht immer ganz so wie erwartet, aber wie ich eben schon gesagt habe, ich weiss die glücklicherweise seltenen Fälle grad nicht, in denen es sich nicht so verhält, wie ich/man es erwartet ... sorry
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: isuidocopen
« Antwort #12 am: 10.05.05 - 17:47:51 »
Wie oben schon geschrieben: Selbst manuell bekommt ein Dokument mindestens in zwei Instanzen geöffnet. Insofern ist das Anliegen von Mandalor so abwegig nicht.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: isuidocopen
« Antwort #13 am: 10.05.05 - 17:54:54 »
Genau, und damit ist mindestens mal ein gültiges Beispiel gegegeben
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: isuidocopen
« Antwort #14 am: 10.05.05 - 18:04:34 »
Hier noch ein anderes Beispiel, Jens: Man geht über einen DocLink. Auch da wird eine neue Instanz aufgemacht. Aus eigener Erfahrung weiss ich, dass diese Möglichkeiten (unbewusst) nicht selten ausgenutzt werden und zu Speicherkonflikten führen - immer wieder. Wie schon gesagt: Es kann wirklich Sinn machen, das doppelte Öffnen abzufangen.

Vorschlag: In einem persönlichen Profiledoc werden die IDs geöffneter Docs gespeichert (PostOpen) bzw. wieder entfernt (QueryClose). Beim Öffnen der DB kann man das Multivalue field immer zwangsweise leeren. Das aber bitte nur als unausgegorenen Ansatz verstehen. Noch besser wäre hierfür eine globale Variable, aber damit hat man es ja schwer in diesem Zusammenhang.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: isuidocopen
« Antwort #15 am: 10.05.05 - 18:14:49 »
Mit einer globalen Var dürfte man in Probleme laufen, mit einem Profil-Doc habe ich so ähnliches schonmal gemacht gehabt
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: isuidocopen
« Antwort #16 am: 10.05.05 - 23:36:48 »
Genauso habe ich das gemeint, Jens. Da eine Maske ja ein eigenes Objekt ist, lädt jede Instanz (hier: Jedes geöffnete Dokument) auch seine eigene Instanz von ScriptLibs (bzw. seine eigene global declarations) - und damit ist Essig mit einer "globalen" Variable. Es fehlt einfach die DB-zentrale Instanz.
Ein (personal) ProfileDoc ist aber "fast" wie eine Instanz für globale Variablen zu benutzen, vor allem, da dieses im Cache gehalten wird. Im Gegensatz zur globalen Variable muss man "nur" dafür sorgen, dass aufgenommene UNIDs beim Öffnen einer DB wieder gelöscht werden, sonst hat man das dead lock-Problem, dass man auch bei den "Standardverfahren" erlebt.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: isuidocopen
« Antwort #17 am: 10.05.05 - 23:44:47 »
Jo, genau das ist die ausführliche Variante meines Postings :)

Danke
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: isuidocopen
« Antwort #18 am: 11.05.05 - 08:21:16 »
ok... überzeugt: Es gibt Anwendungsbeispiele hierfür  ;)

Nun haben wir nur ein Problem: Wir drei (semeaphoros, koehlerbv und ich) diskutieren über mögliche Lösungen, der ursprüngliche "Frager" hat sich aber offensichtlich längst aus der Diskussion ausgeklinkt...

Also möglicherweise theoretisieren wir hier ganz umsonst.

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: isuidocopen
« Antwort #19 am: 11.05.05 - 09:22:56 »
Jein, tatsächlich ist der Originator nicht mehr erschienen ...  :(

Der Gedankengang war aber wertvoll, meine ich  ;D


BTW: Wir reden von Mandalor und nicht von My Head, ersterer hat die Diskussion hier neu angezogen .....
« Letzte Änderung: 11.05.05 - 09:26:09 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz