Domino 9 und frühere Versionen > ND8: Entwicklung

2 Probleme - Kalender und Script und Bearbeitung verhindern

(1/2) > >>

manboo8000:
Hey, in der Lotus Entwicklung bin ich noch recht frisch und über die Suche konnte ich meine Problemstellungen nicht finden. Vielleicht könnt ihr mir da weiterhelfen.

Problem 1: In einer Datenbank sollen bestimmte Termine erfasst werden, zu denen sich die Mitarbeiter dann eintragen können. Dabei enthält das Dokument auch eine Schaltfläche, was den Termin in den persönlichen Kalender mittels Lotus Script eintragen soll. Das Dokument erscheint dann auch im Kalender, allerdings ohne Anzeige der Uhrzeit, wenn man sich seinen Kalender öffnet. Beim Öffnen dieses Kalendereintrages kommt dann auch eine Fehlermeldung, dass Elemente nicht gefunden wurden. Welche Elemente fehlen, sagt Notes leider nicht. Ich habe schon mal manuell einen Kalendereintrag angelegt und die Felder vom Inhalt und vom Typ her mit meinem über die Schaltfläche erzeugten verglichen, aber die (für mich scheinbar) relevanten Felder sind alle identisch belegt und vom gleichen Feldtypen. Auch die Felder mit StartDate, StartTime usw. sind alle korrekt befüllt. Wie kann ich nun weiter vorgehen?

Problem 2: In der Datenbank sollen nach dem Anlegen von Dokumenten (was jeder User darf) die angelegten Dokumente nur noch über angelegte Aktionen verändert werden können (diese bewirken z. b. eine Eintragung in die Teilnehmerliste oder eine Erfassung von Bemerkungen).  Was nicht gehen soll ist das normale ändern des Dokumentes mittels Doppelklick, STRG+B. Geht das?

WildVirus:
Erstmal herzlich willkommen, Namenloser.

zu 1) siehe http://atnotes.de/index.php/topic,34494.0.html
zu 2) ja, geht, gibt es DocumentEvents, die das steuern, z.B. QueryOpen

Viel Erfolg
CU,
Axel

Driri:
Wenn ich das richtig verstanden habe, dann werden die Teilnehmer/Anmeldungen direkt in das Termindokument geschrieben ?

Das empfinde ich von der Architektur her unglücklich, denn somit müssen die Teilnehmer ja auf jeden Fall Schreibrechte auf das Termindokument haben. D.h. man könnte als Anwender so ein Dokument z.B. via Agent oder SmartIcon manipulieren.

Besser wäre es, wenn es ein Termindokument gibt, das mit einem passend gefüllten Autorenfeld nur vom Ersteller oder einer eingegrenzten Gruppe bearbeitbar ist und jeder Teilnehmer seine Anmeldung als Antwortdokument abgibt. Dieses Antwortdokument hätte dann ebenfalls ein Autorenfeld, in der der jeweilige Teilnehmer eingetragen ist.

manboo8000:
Problem 1 habe ich lösen können, habe es einfach mal mit mehr oder weniger Feldern probiert, bis es irgendwann ging. Notes ist da ja echt komisch...

Problem 2 werde ich mir dann nochmal anschauen.

@Driri: Wenn ein Anwender da was manipulieren möchte, dann soll er das tun. Letztendlich sind das keine wichtigen Sachen, die Datenbank ist nur "Schmuck am Nachthemd". Abgesehen davon wage ich zu bezweifeln das unsere Mitarbeiter überhaupt wissen, was ein Agent ist :-)
Aber wenn das mit dem Antwort-Dokument einfach zu handeln ist, bin ich auch dafür offen :-)

manboo8000:
habe gerade noch ein anderes Problem. Und zwar wird in Dokumenten eine Aktion angezeigt "Mail an alle Teilnehmer senden". Ziel soll sein, dass beim Klick über die MailDB des Benutzers eine neue Nachricht erzeugt wird und dort bereits die Felder SendTo und Subject vorbelegt sind. Mein Code ist in einem Agenten hinterlegt, in der Schaltfläche das Kommando den Agenten zu starten. Leider passiert beim Anklicken gar nichts. Könnt ihr mir helfen?


--- Code: ---Option Public
Sub Initialize
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim user As New NotesName(session.UserName)
Dim maildb As New NotesDatabase( "", "" )
Set uidoc = workspace.CurrentDocument
Set db = session.CurrentDatabase
Set doc = uidoc.Document


On Error GoTo ErrorHandler

Call maildb.OpenMail
If Not (maildb.IsOpen) Then
MessageBox "Die Maildatenbank <" & maildb.Title & "> auf dem Server <" & maildb.Server & "> konnten nicht geöffnet werden. Evtl. besteht ein Problem mit den Zugriffsrechten oder der Arbeitsumgebung.", 16, "Maildatenbank konnte nicht geöffnet werden"
Exit Sub
End If


Dim newmail As New NotesDocument(maildb)
Call newmail.ReplaceItemValue("Form","Memo")
Call newmail.ReplaceItemValue("Subject",doc.Bezeichnung)
Call newmail.ReplaceItemValue("SendTo",doc.Teilnehmer)

GoTo Ende

ErrorHandler:

MsgBox "Mail --> Fehler in Zeile: " & Erl & "  (Error" & Str(Err) & ": " & Error$ & ")"
Exit Sub

Ende:
End Sub

--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln