Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: arieger am 31.01.13 - 16:05:36
-
Hallo,
Möchte per Button einen Kalendereintrag per Mail erzeugen - reinschießen - tut aber nicht, wie ich es mir vorgestellt habe. Im Maileingangsordner kommt es an, aber nicht als Kalendereintrag!
Hänge mal das LS dran, vielleicht hat mir jemand einen Tipp zur Lösung.
Vielen Dank im Vorraus.
Anton
???
Dim ws As NotesUIWorkspace
Set ws = New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc=ws.CurrentDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim kdoc As NotesDocument
Dim userName As NotesName
Dim item As NotesItem
Dim Z01 As String
Dim Z02 As String
Dim Z03 As String
Dim Z04 As String
Dim Z05 As String
Dim Z06 As String
Dim Z07 As String
Dim Z08 As String
Dim Z09 As Variant
Dim Z10 As Variant
Dim Z11 As Variant
Dim Z12 As Variant
Dim Z13 As Variant
Dim Z14 As Variant
Set db= session.CurrentDatabase
Set doc = uidoc.Document
Set userName = session.CreateName(session.UserName)
'SendTo
Z01 = doc.Email(0)
'Subject
Z021 =uidoc.FieldGetText("A_Name_Z1")
Z022 =uidoc.FieldGetText("A_Name_Z2")
Z023 =uidoc.FieldGetText("A_Name_Z3")
Z024 =uidoc.FieldGetText("A_Kursnummer")
Z02 = Z021 + " " + Z022 + " " + Z023 + " (" + Z024 + ")"
'AppointmentType
Z03 = "0"
'tmpEventLabel
Z04 = "Termin"
'Categories
Z05 = "Schulung"
'Location
Z06 = doc.A_Ort(0)
'_ViewIcon
Z07 = "160"
'Logo
Z08 = "StdNotesLtr3"
'Datum-Beginn
Z09 = doc.GetItemValue("StartDateTime")
Z10 = doc.GetItemValue("EndDateTime")
Z11 = doc.GetItemValue("StartDate")
Z12 = doc.GetItemValue("EndDate")
Z13 = doc.GetItemValue("StartTime")
Z14 = doc.GetItemValue("EndTime")
'Datum-Ende
'Infomail / Kalendereintrag an Anmeldeperson senden
Set kdoc = db.CreateDocument
Call kdoc.AppendItemValue("SendTo", Z01)
Call kdoc.AppendItemValue("Recipient", Z01)
Call kdoc.AppendItemValue("From", session.UserName)
Call kdoc.AppendItemValue("Form", "Appointment")
Call kdoc.AppendItemValue("Subject", Z02)
Call kdoc.AppendItemValue("AppointmentType", Z03)
Call kdoc.AppendItemValue("tmpEventLabel", Z04)
Call kdoc.AppendItemValue("$CSCopyItems", Z05)
Call kdoc.AppendItemValue("Location", Z06)
Call kdoc.AppendItemValue("_ViewIcon", Z07)
Call kdoc.AppendItemValue("Logo", Z08)
Call kdoc.AppendItemValue("StartDateTime", Z09)
Call kdoc.AppendItemValue("EndDateTime", Z10)
Call kdoc.AppendItemValue("StartDate", Z11)
Call kdoc.AppendItemValue("EndDate", Z12)
Call kdoc.AppendItemValue("StartTime", Z13)
Call kdoc.AppendItemValue("EndTime", Z14)
Call kdoc.AppendItemValue("SaveOptions", "0")
Call kdoc.AppendItemValue("Principal",userName )
Call kdoc.AppendItemValue("Chair",userName )
Call kdoc.AppendItemValue("$Revisions",Now )
Dim rtg As New NotesRichTextItem( kdoc, "Body")
Call rtg.AddNewLine(2)
Call rtg.AppendText("Eintrag aus der Veranstaltungsforum-Datenbank")
Call rtg.AddNewLine(2)
Call rtg.AppendText("---------------------------------------------")
Call rtg.AddNewLine(2)
Call rtg.AppendText("Mehr Informationen zur Veranstaltung erhalten Sie durch ")
Call rtg.AddNewLine(2)
Call rtg.AppendText("einen Klick mit der Maus auf die nachfolgende Dokumentenverknüpfung .")
Call rtg.AddNewLine(2)
Call rtg.AppendText("Bitte hier klicken --> ")
Call rtg.AppendDocLink( doc,"Bitte hier klicken -- > ")
Call kdoc.Save( False, True )
Call kdoc.Send( False )
'Msgbox "Termin wurde in Kalender eingetragen ! ", 64, "Information !"
Call uidoc.refresh
Call uidoc.save
-
Schau Dir mal die viewselection an. Ich denke, dass das Feld CalendarDateTime fehlt.
-
Per Mail? Also als Einladung? Dann ist ziemlich alles falsch. Du musst Dir ein Dokument vom Typ "Notice" anschauen (lass Dir eine Einladung schicken).
Bernhard
-
Hallo,
super, "CalendarDateTime " hat gefehlt - nun zeigt er den Termin im Kalender an.
Aber: hm - sowohl im Maileingang als auch im Kalender. Kann den Termin im Maileingang löschen dann ist er im Kalender immer noch da. Gibts da noch eine Lösung, das er nur im Kalender angezeigt wird? Habe ich noch ein Feld vergessen zu füllen?
Schaue mir auch noch mal wie von Bernhard empfohlen, den ""Notice" an.
Vielen Dank
Anton
-
Das Erscheinen in der Inbox ist völlig normal, da das Dokument ja per Mail reinkommt und der Router schmeisst alle Eingänge in die Inbox.
Allerdings kannst Du das Dokument in der Inbox nicht *gelöscht* haben, da es dann auch nicht mehr in der Ansicht (!) Calendar erscheinen kann - weg ist weg. Du wirst das Dokument vielmehr aus der Inbox *entfernt* haben.
Bernhard
-
Hallo Bernhard,
ich habe das Mail angekreuzt, die Entf-taste gedrückt und im Papierkorb wiedergefunden.
Frage an den Experten: kann man das nicht irgendwie verhindern - also nur den Kalendereintrag im Backend erzeugen oder geht das mit der Mailfunktion gar nicht anders?
Viele Grüße
Anton
-
Du willst das "Calendaring and Scheduling Schema" anschauen: Da steht ganz genau beschrieben, welche Dokumenttypen es gibt, und welches Feld was steuert.
und dann erstellst Du ENTWEDER eine Notice, die per Mail versendet wird, und die der Benutzer annimmt, ODER Du erstellst direkt in der Mail- Datenbank ein Kalender- Dokument (ohne zu versenden)...