Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: arieger am 31.01.13 - 16:05:36

Titel: Kalendereintrag per Mail reinschießen - tut aber nicht ???
Beitrag 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
Titel: Re: Kalendereintrag per Mail reinschießen - tut aber nicht ???
Beitrag von: dnotes am 31.01.13 - 16:25:41
Schau Dir mal die viewselection an. Ich denke, dass das Feld CalendarDateTime fehlt.
Titel: Re: Kalendereintrag per Mail reinschießen - tut aber nicht ???
Beitrag von: koehlerbv am 31.01.13 - 16:42:29
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
Titel: Re: Kalendereintrag per Mail reinschießen - tut aber nicht ???
Beitrag von: arieger am 31.01.13 - 17:21:47
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

 
Titel: Re: Kalendereintrag per Mail reinschießen - tut aber nicht ???
Beitrag von: koehlerbv am 31.01.13 - 17:32:13
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
Titel: Re: Kalendereintrag per Mail reinschießen - tut aber nicht ???
Beitrag von: arieger am 01.02.13 - 15:16:56
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
Titel: Re: Kalendereintrag per Mail reinschießen - tut aber nicht ???
Beitrag von: Tode am 01.02.13 - 15:50:25
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)...