Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bille am 22.01.08 - 12:19:12

Titel: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 12:19:12
Hallo!

Ich habe in der Maske "Kalendereintrag" der Mailschablone den Button "Bewirtung" eingefügt, hinter dem sich folgender Code verbirgt:

Code
Sub Click(Source As Button)
	Dim s As New NotesSession     
	Dim ws As New NotesUIWorkspace
	Dim doc As NotesDocument
	
	Set doc = ws.CurrentDocument.Document
	
	If Not ws.DialogBox( "DialogBewirtung" , False , False, False, False, False, False, "Ort der Besprechung", doc ) Then
		Exit Sub
	End If
	Call doc.Save(False,False)
End Sub

Wenn ich im eigenen Kalender mittels "Besprechung planen" ein Dokument öffne und den Button klicke, funktioniert alles wie gewünscht.
Erstelle ich aber den Eintrag in einem fremden Kalender kommt die Fehlermeldung:
"DialogBox kann nicht in diesem Kontext verwendet werden. Es muss ein Dokument ausgewählt werden."

Ich hab mir die Variablen im Debugger angesehen, das doc ist gesetzt.

Wo liegt hier mein Fehler?

Bille

EDIT: Auf erledigt gesetzt!
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: ata am 22.01.08 - 12:26:35
Hallo Bille,

... laut Fehlermeldung hat er keinen ZUgriff auf das Dokument - vielleicht wurde der neue Eintrag noch nicht gespeichert, und du hast in deiner Box auf ein existierendes Dokument zugegriffen?

Toni
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 12:41:48
Hallo Toni,

ja, das Dokument wurde noch nicht gespeichert, aber das ist auch der Fall, wenn ich die Besprechung in meinem eigenen Kalender öffne.
Es muss also irgendwas damit zu tun haben, dass ich das Dokument im fremden Kalender öffne. Nur wo ist hier der Unterschied? Das Recht im anderen Kalender Einträge zu erstellen liegt vor.

Bille

Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: ata am 22.01.08 - 13:19:08
... in deinem Code sind ist keine Validierung auf das aktuelle Dokument:
Zitat
Set doc = ws.CurrentDocument.Document

Das würde ich validieren mit

If not doc Is Nothing Then...

... denn du verwendest es für die Dialogbox. Und da könnten weitere Zugriffe benötigt werden, die eventuell nicht funktionieren. Da dürfte es sich um eine eigene Dialogmaske handeln. Wann genau kommt die Fehlermeldung hoch - vor der Dialogbox, beim Laden der Dialogbox...?

Toni
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 13:34:21
Ja, die Dialogbox ist als eigene Maske in der Mailschablone vorhanden.

Ich hab die Validierung im Code eingefügt. Es erscheint aber immer noch der gleiche Fehler.
Der Fehler tritt beim Öffnen der Dialogbox auf, also in der Zeile
Code
If Not ws.DialogBox( "DialogBewirtung" , False , False, False, False, False, False, "Ort der Besprechung", doc ) Then

An dem nicht vorhandenen doc dürfte es nicht liegen, zum einen wird es nun ja vorher abgefragt und zum anderen kann ich im Debugger das doc (samt Items usw.) auch sehen.
Auch sonst kann ich keinen Unterschied entdecken.

Kann es evtl. doch noch mit irgendwelchen Rechten zu tun haben?

Bille
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 13:45:46
Hat Du mal versucht das als neues Dokument und nicht als Dialogbox auszuführen?

Mich grabelt da was mit UIWorkspace und Backend Dokument in einer fremden Datenbank.
Bin mir aber nicht mehr sicher.
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 13:54:57
Nein, das hab ich noch nicht probiert.
Weiß ehrlich gesagt aber auch gar nicht genau, wie Du das meinst.

Bille

PS: Falls das mit UIWorkspace und Backendokument in einer fremden DB grundsätzlich nicht funktioniert, wäre das schon mal eine Erklärung für den Fehler ...
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: koehlerbv am 22.01.08 - 13:58:18
Naja, das kann es nicht sein, denn was ist eine "fremde DB" in diesem Zusammenhang? Bille macht DB A auf - funktioniert, dann DB B - und es funktioniert nicht. Aus Notes-Sicht sind beides ganz normale DBs, es gibt keine Unterschiede ... bis auf die Rechte.

Bille, bau mal spassenshalber in Deine Dialogbox-Maske ein berechnetes Feld $PublicAccess mot dem Wert "1" ein.

Bernhard
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 14:08:54
Oh. falscher Gedankengang.
Man ist ja immer noch 'am Ort' sozusagen...

Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 14:12:22
Hast Du übrigens schon so Sachen wie:

desktop komprimiert
cache gelöscht
usw. usf?

Gleiche Meldung, anderes Problem ( dominoforum ) (http://www.dominoforum.de/modules/newbb/viewtopic.php?topic_id=14911&forum=36&post_id=83142)
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 14:42:58
Anhand Eurer Hinweise habe ich nun folgendes probiert.

1) Berechnetes Feld $PublicAccess mit Wert "1" in DialogMaske erstellt
2) Cache.ndk auf meinem Rechner gelöscht
3) compact, fixup, updall auf der anderen Datenbank ausgeführt
4) meinen Notes-Client neu gestartet

Der Fehler bleibt leider der Gleiche.
Das Problem trat schon vor einiger Zeit bei der Sekretärin auf, die für den Chef eine Besprechung samt Bewirtung eintragen wollte.
Ich kann das Problem hier an meinem Rechner mit der Mail-DB eines anderen Kollegen nachstellen. Drum dachte ich auch, dass es an dem Code (bzw. den Rechten) liegen muss.

Habt Ihr noch Ideen?

Bille

PS: André, kannst Du mir nochmals mit Deinem Hinweis (nicht als Dialogbox sondern als Dokument) weiterhelfen, oder hat sich das mit dem Hinweis von Bernhard erledigt?
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Glombi am 22.01.08 - 14:50:22
Lass mal den letzten Parameter "doc" beim Aufruf der Dialogbox weg, da ja das aktuelle Dokument verwendet wird:

If Not ws.DialogBox( "DialogBewirtung" , False , False, False, False, False, False, "Ort der Besprechung") Then


Andreas
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: koehlerbv am 22.01.08 - 14:58:02
Naja, Andreas - der Parameter "doc" greift in jeder Maildatenbank, ob es nun die eigene ist oder eine andere.

Bille: Einen Versuch war es wert mit $PublicAccess, auch wenn ich es mir nicht so richtig vorstellen konnte. Leider reichte die Zeit nicht aus, das nachzubauen - ein interessantes Problem ist es aber schon!

Du schreibst eines noch nicht eindeutig: Passiert das immer (in fremden DBs), oder sind Dir nur zwei Fälle bekannt? Welche Rechte haben die User im jeweils anderen Mailfile?

Bernhard

PS: Wir kriegen alle gemeinsam die Sau schon noch zum Fliegen  ;)
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 15:08:49
Ich habe auch noch was.

Leg mal ein Dummydoc an und versuch die Dialogbox damit zu öffnen.

Das mit dem nicht als Dialogbox parken wir erstmal...  :)

Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 15:12:16
Hallo nochmal,

also, es liegt definitiv an den Rechten.
Ich hab mich in der anderen Mail-DB als Manager eingetragen und schon geht's!
Bisher habe ich nur die Rechte Kalendereinträge zu erstellen und zu löschen.
ACL: No Access,
Haken bei "read public documents" gesetzt
Haken bei "write public documents" gesetzt
Haken bei "replicate or copy documents" gesetzt

Ich hab bei dem Feld $PublicAccess sowohl die Variante "1" als auch 1 probiert.
Irgendwo dort muss doch der Hund begraben sein ...

Schon mal ein herzliches Dankeschön an alle Beteiligten für die zahlreichen Hinweise und Ratschläge.

Bille

PS: Andreas, das Weglassen des Parameters "doc" hat keine Veränderung ergeben.

PPS: Ich sehe gerade, dass ich eine Frage von Bernhard nicht beantwortet habe. Bisher sind mir nur die zwei beschriebenen Fälle bekannt, aber die Funktion verwendet außer der Sekretärin m.E. sonst keiner.
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: koehlerbv am 22.01.08 - 15:19:12
Nehmen wir damit mal das naheliegende an, Bille: Es betrifft alle (solange die Rechte identisch sind wie zu diesen beiden Fällen).

Ich versuche heut' auf Nacht, dass mal nachzubauen. Kannst Du bitte noch einen Schirmschuss aus der Dialogbox-Maske (Designer-Sicht) posten?

Bernhard
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 15:22:47
Wenn es alle Betrifft, ist die Wahrscheinlichkeit sehr groß, das die Bezeichnung der Form falsch geschrieben ist.
Such mal im Notes.net nach

DialogBox and Context
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Glombi am 22.01.08 - 15:26:13
Ist in der Maske "DialogBewirtung" auch die Option "Verfügbar für Benutzer mit öffentlichem Zugriff gesetzt" ?

Zitat
$PublicAccess
Das reicht vermutlich nicht. Es muss die o.g. Option aktiv sein.
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 15:26:43
André, dass mit der falschen Form kann doch eigentlich nicht sein, da es in meinem Kalender ja funktioniert. Nur wenn ich über eine andere DB zugreife, kommt dieser Fehler.

Ich hab zwei Bilder angehängt.
Zum einen die DialogMaske und zum anderen noch einen Teil der Maske "Kalendereintrag", da ich nicht weiß, ob es relevant ist, dass ich hier noch das Feld "$CSCopyItems" hinzugefügt habe.
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Glombi am 22.01.08 - 15:31:09
Hast Du meinen Vorschlag in #17 schon gesehen?
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 15:31:17
Zitat
Ist in der Maske "DialogBewirtung" auch die Option "Verfügbar für Benutzer mit öffentlichem Zugriff gesetzt" ?

Auf die Gefahr hin, dass ich mich wiederhole:

Andreas, Du bist mein Held!

Genau, daran hat's gelegen! Ich hab die Option gesetzt und nun lässt sich die Dialogbox öffnen.

Vielen Dank für die Hilfe! Ihr seid echt klasse - und zwar alle!
Bille
 :D
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 15:33:36
Schön, das wir auch die anderen 10.000 Möglichkeiten besprochen haben  ;D

Ich hätte auch noch die ECL in Petto gehabt....  ;D ;D
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 15:37:48
So schnell, wie Ihr mir die veschiedenen Möglichkeiten geschrieben habt, bin ich mit dem Testen und Antworten gar nicht hinterher gekommen.

Aber nun ist alles gut. Und das mit den anderen 10.000 Möglichkeiten war nicht umsonst, ich hab heute wieder jede Menge gelernt. Neben der Lösung ein positiver Nebeneffekt!
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: koehlerbv am 22.01.08 - 15:39:49
Und Andreas hat natürlich vollkommen Recht: $PublicAccess greift via Backend. Ich war da zwar auf dem richtigen Dampfer, aber habe leider auf halben Weg (Stress! Trotzdem nicht verzeihlich) aufgehört zu denken.

Bernhard

Fazit: Gut, dass wir darüber gesprochen haben  :)
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 15:41:34
Das war nicht böse oder so gemeint. Wenn man überlegt an wievielen Stellen jetzt wegen dieser Meldung rumschrauben kann...  8)

Der nächste der danach sucht, hat genug Möglichkeiten sich auszutoben  O0

Fürs Archiv die Original Meldung:

DialogBox cannot be used in this context; a document must be selected
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: koehlerbv am 22.01.08 - 16:07:52
Das macht den Thread jetzt richtig rund: Die "Originalmeldung". Danke, André!

Bernhard

PS: Was solltest oder wolltest Du (nicht) böse gemeint haben, André? Das hat doch alles gepasst, oder habe ich etwas überlesen?
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: Bille am 22.01.08 - 16:17:35
Also ich hab auch nichts böse (oder so) aufgefasst, nur falls Du Dich auf die Bemerkung
Zitat
Schön, das wir auch die anderen 10.000 Möglichkeiten besprochen haben
und meine Antwort darauf bezogen hast.
Titel: Re: FM "DialogBox kann nicht in diesem Kontext verwendet werden. ..."
Beitrag von: DerAndre am 22.01.08 - 20:33:44
Neinneinnein.

Alles Ok. War nur mal wieder eine merkwürdige Formulierung von mir   :)