Public Function SendNotesTermin(pstrSubject As String, _
pstrRecipient As String, _
pstrMailBody As String, _
AppDate As Date, _
StartTime As Date, _
MinsDuration As Integer, _
pstrLocation As String, _
pstrCategories As String, _
AppointmentType As String) As String
'Aufgabe: Sendet Termine mit Attachment via Notes
'Rückgabe: String mit Fehlermeldung bei auftretendem Fehler, sonst Leerstring
'
'WICHTIG: Bei den Empfängern darf der Absender nicht enthalten sein!!
On Error GoTo proc_error
Dim objMaildb As Object
Dim objCalenDoc As Object
Dim strMailDbName As String
Dim strUserName As String
Dim strServerName As String
Dim varEmpfListe() As Variant
Dim datStartDatum As Date
Dim datStartZeit As Date
Dim datEndDatum As Date
Dim datEndZeit As Date
SendNotesTermin = ""
'Zeitvariablen füllem
datStartDatum = DateSerial(Year(AppDate), Month(AppDate), Day(AppDate))
datStartZeit = TimeSerial(Hour(StartTime), Minute(StartTime), Second(StartTime))
datEndDatum = DateSerial(Year(DateAdd("n", MinsDuration, AppDate)), Month(DateAdd("n", MinsDuration, AppDate)), Day(DateAdd("n", MinsDuration, AppDate)))
datEndZeit = TimeSerial(Hour(DateAdd("n", MinsDuration, StartTime)), Minute(DateAdd("n", MinsDuration, StartTime)), Second(DateAdd("n", MinsDuration, StartTime)))
'Empfänger, per Komma getrennt, in Empfängerarray eingelesen
intEmpfCnt = 0
lngPos1 = InStr(1, pstrRecipient, ",")
While lngPos1 > 0
ReDim Preserve varEmpfListe(intEmpfCnt)
varEmpfListe(intEmpfCnt) = Left(pstrRecipient, lngPos1 - 1)
pstrRecipient = Right(pstrRecipient, Len(pstrRecipient) - lngPos1)
lngPos1 = InStr(1, pstrRecipient, ",")
intEmpfCnt = intEmpfCnt + 1
Wend
ReDim Preserve varEmpfListe(intEmpfCnt)
varEmpfListe(intEmpfCnt) = pstrRecipient
'Notes befüllen
Set objSession = CreateObject("Notes.NotesSession")
strUserName = objSession.UserName
strServerName = objSession.GETENVIRONMENTSTRING("MailServer", True)
strMailDbName = objSession.GETENVIRONMENTSTRING("MailFile", True)
Set objMaildb = objSession.GETDATABASE(strServerName, strMailDbName)
If objMaildb.ISOPEN <> True Then
On Error Resume Next
objMaildb.OPENMAIL
End If
Set objCalenDoc = objMaildb.CREATEDOCUMENT
With objCalenDoc
.REPLACEITEMVALUE "Form", "Appointment"
.REPLACEITEMVALUE "AppointmentType", AppointmentType '0=Appointment, 1=Anniversary, 2=AllDayEvent, 3=Meeting, 4=Reminder
'Zeit und Datum
.REPLACEITEMVALUE "StartDateTime", CDate(datStartDatum & " " & datStartZeit)
.REPLACEITEMVALUE "CalendarDateTime", CDate(datStartDatum & " " & datStartZeit)
.REPLACEITEMVALUE "EndDateTime", CDate(datEndDatum & " " & datEndZeit)
.REPLACEITEMVALUE "StartDate", datStartDatum
.REPLACEITEMVALUE "StartTime", datStartZeit
.REPLACEITEMVALUE "EndDate", datEndDatum
.REPLACEITEMVALUE "EndTime", datEndZeit
.REPLACEITEMVALUE "$NoPurge", datEndDatum & " " & datEndZeit
'Eigentümer
.REPLACEITEMVALUE "Chair", strUserName
.REPLACEITEMVALUE "AltChair", strUserName
.REPLACEITEMVALUE "From", strUserName
.REPLACEITEMVALUE "Principal", strUserName
.REPLACEITEMVALUE "$AltPrincipal", strUserName
'Was, wo und warum
.REPLACEITEMVALUE "Categories", pstrCategories
.REPLACEITEMVALUE "Location", pstrLocation
.REPLACEITEMVALUE "Subject", pstrSubject
.REPLACEITEMVALUE "Body", pstrMailBody
' Einstellung einer Erinnerung in Minuten
.REPLACEITEMVALUE "$Alarm", 1
.REPLACEITEMVALUE "$AlarmOffset", -15
.REPLACEITEMVALUE "Alarms", "1"
'Welches Icon soll angezeigt werden
Select Case AppointmentType
Case 0 'Appointment
.REPLACEITEMVALUE "_viewicon", 160
Case 1 'Anniversary
.REPLACEITEMVALUE "_viewicon", 63
Case 2 'AllDayEvent
.REPLACEITEMVALUE "_viewicon", 9
Case 3 'Meeting
.REPLACEITEMVALUE "_viewicon", 158
Case 4 'Reminder
.REPLACEITEMVALUE "_viewicon", 10
End Select
'Notes Systemvariablen
.REPLACEITEMVALUE "$BorderColor", "D2DCDC"
.REPLACEITEMVALUE "$BusyName", strUserName
.REPLACEITEMVALUE "$BusyPriority", "1"
Dim strCSTrack(2) As String
Dim strUserFuerCSTrack As String
strUserFuerCSTrack = Replace(strUserName, "CN=", "")
strUserFuerCSTrack = Replace(strUserFuerCSTrack, "OU=", "")
strUserFuerCSTrack = Replace(strUserFuerCSTrack, "O=", "")
strCSTrack(0) = "Send Request by Notes Client on " & strUserFuerCSTrack & "(" & objSession.NOTESVERSION & ") at " & Format(Now(), "dd.mm.yyyy hh:mm:ss")
strCSTrack(1) = "Prepare Request by Notes Client on " & strUserFuerCSTrack & "(" & objSession.NOTESVERSION & ") at " & Format(Now(), "dd.mm.yyyy hh:mm:ss")
strCSTrack(2) = "Revert Invitation by Notes Client on " & strUserFuerCSTrack & "(" & objSession.NOTESVERSION & ") at " & Format(Now(), "dd.mm.yyyy hh:mm:ss")
.REPLACEITEMVALUE "$CSTrack", strCSTrack
.REPLACEITEMVALUE "$CSVersion", "2"
.REPLACEITEMVALUE "$CSWISL", Array("$S:1", "$L:1", "$B:1", "$R:1", "$E:1", "$W:1", "$O:1", "$M:1")
.REPLACEITEMVALUE "$ExpandGroups", "3"
.REPLACEITEMVALUE "$FromPreferredLanguage", "de"
.REPLACEITEMVALUE "$HFFlags", "1"
.REPLACEITEMVALUE "$LangChair", ""
.REPLACEITEMVALUE "$SMTPKeepNotesItem", "1"
.REPLACEITEMVALUE "$WatchedItems", Array("$S", "$L", "$B", "$R", "$E", "$W", "$O", "$M")
.REPLACEITEMVALUE "ApptUNID", .UNIVERSALID
.REPLACEITEMVALUE "BookFreeTime", ""
.REPLACEITEMVALUE "ExcludeFromView", Array("S", "D")
.REPLACEITEMVALUE "MailOptions", "0"
.REPLACEITEMVALUE "MeetingType", "1"
.REPLACEITEMVALUE "OrgTable", "C0"
.REPLACEITEMVALUE "PublicAccess", "1"
.REPLACEITEMVALUE "Resources", ""
.REPLACEITEMVALUE "Repeats", ""
.REPLACEITEMVALUE "RoomToReserve", ""
.REPLACEITEMVALUE "SchedulerSwitcher", "1"
.REPLACEITEMVALUE "StartTimeZone", "Z=-1$DO=1$DL=3 -1 1 10 -1 1$ZX=86$ZN=W. Europe"
.REPLACEITEMVALUE "StorageRequiredNames", "1"
.REPLACEITEMVALUE "UpdateSeq", 1
.REPLACEITEMVALUE "WebDateTimeInit", "1"
'Versandeinstellungen
If AppointmentType = 3 Then 'Meeting
.REPLACEITEMVALUE "Recipients", varEmpfListe
.REPLACEITEMVALUE "RequiredAttendees", varEmpfListe
.REPLACEITEMVALUE "AltRequiredNames", varEmpfListe
.REPLACEITEMVALUE "SendTo", varEmpfListe
End If
'.DeliveryReport = "B" 'Übermittlung anzeigen
'.Importance = "2" 'Wichtigkeit hochsetzen
.SAVEMESSAGEONSEND = False ' bei True wird ein Exemplar in Notes in Gesendet gestellt
.SIGNONSEND = True 'Signieren beim Versand
'.ReturnReceipt = "1" 'Empfang bestätigen
'Überprüfen vor dem Speichern bzw. Versand
If .COMPUTEWITHFORM(True, False) Then
MsgBox "Bei der Erstellung des Termins ist ein Fehler aufgetreten!"
GoTo proc_exit
End If
'Wenn es ein Metting ist, Einladungen versenden
If AppointmentType = 3 Then
.SEND 0
End If
'Im Kalender speichern
.Save 1, 0
'Damit der Alarm auch funtioniert
.PUTINFOLDER "$Alarms", True
End With
proc_exit:
Set objMaildb = Nothing
Set objCalenDoc = Nothing
Exit Function
proc_error:
SendNotesTermin = Err.Description
Resume proc_exit
End Function
Erstelle Dir ein Dokument, wie Du es haben möchtest, manuell. Vergleiche dann über die Felderliste das manuell erstellte Dokument mit dem maschinell erstellten. Wenn ein Feld fehlt, wirst Du es so am einfachsten finden.
IBM Lotus Notes and Domino Calendaring & Scheduling Schema (http://www-10.lotus.com/ldd/ddwiki.nsf/dx/cs_schema_toc)Leider habe ich hier auch nichts zu meinem Problem gefunden.
'Überprüfen vor dem Speichern bzw. Versand
If .COMPUTEWITHFORM(True, False) Then
MsgBox "Bei der Erstellung des Termins ist ein Fehler aufgetreten!"
GoTo proc_exit
End If
Public Function SendNotesTermin(pstrSubject As String, _
pstrRecipient As String, _
pstrMailBody As String, _
AppDate As Date, _
StartTime As Date, _
MinsDuration As Integer, _
pstrLocation As String, _
pstrCategories As String, _
AppointmentType As String) As String
'Aufgabe: Sendet Termine via Notes
'Rückgabe: String mit Fehlermeldung bei auftretendem Fehler, sonst Leerstring
'
'pstrSubject: Betreff
'pstrRecipient: Empfänger mit Komma getrennt
'pstrMailBody: Text
'AppDate: Datum Termin
'StartTime: Uhrzeit Termin
'MinsDuration: Dauer in Minuten
'pstrLocation: Ort
'pstrCategories: Kategorie
'AppointmentType: 0=Termin, 1=Jahrestag, 2=Ganztägige Veranstaltung, 3=Meeting, 4=Erinnerung
'
'WICHTIG: Damit die Funktion "Status der eingeladenen Personen prüfen" sauber funktioniert
' müssen die internen Aderssen im Notes Format "User/Intern/MUSTER" übergeben werden.
On Error GoTo proc_error
Dim objNotesSession As Object
Dim objNotesDatabase As Object
Dim objNotesDocument As Object
Dim strServerName As String
Dim strMailDbName As String
Dim strUserName As String
Dim strUserMail As String
Dim datStart As Date
Dim datEnde As Date
Dim intIconNr As Integer
Dim intZaehler As Integer
Dim dblAnzahlTage As Double
SendNotesTermin = ""
'Bei ganztägige Veranstaltung auf 4 Uhr Starttag und 22 Uhr Endtage setzen
If AppointmentType = 2 Then
datStart = CDate(AppDate & " " & "04:00")
dblAnzahlTage = fktAufrunden(MinsDuration / 60 / 24, 0) ' Berechnung Tage
datEnde = CDate(Format(DateAdd("d", dblAnzahlTage - 1, datStart), "dd.mm.yyyy") & " 22:00")
Else
datStart = CDate(AppDate & " " & Format(StartTime, "hh:mm"))
datEnde = DateAdd("n", MinsDuration, datStart)
End If
Set objNotesSession = CreateObject("Notes.NotesSession")
strUserName = objNotesSession.UserName
strUserMail = Replace(Replace(Replace(strUserName, "CN=", ""), "OU=", ""), "O=", "")
strServerName = objNotesSession.GETENVIRONMENTSTRING("MailServer", True)
strMailDbName = objNotesSession.GETENVIRONMENTSTRING("MailFile", True)
Set objNotesDatabase = objNotesSession.GETDATABASE(strServerName, strMailDbName)
Set objNotesDocument = objNotesDatabase.CREATEDOCUMENT
With objNotesDocument
'## Appointment Type - Meeting
.REPLACEITEMVALUE "AppointmentType", AppointmentType
'## General Meeting Info
.REPLACEITEMVALUE "Form", "Appointment"
.REPLACEITEMVALUE "Subject", pstrSubject
.REPLACEITEMVALUE "Categories", pstrCategories
.REPLACEITEMVALUE "Body", pstrMailBody
.REPLACEITEMVALUE "Location", pstrLocation
.REPLACEITEMVALUE "Room", ""
'## Who sent/created/chairs the Meeting
.REPLACEITEMVALUE "From", objNotesSession.UserName
.REPLACEITEMVALUE "Chair", objNotesSession.UserName
'## Time of meeting-related stuff
.REPLACEITEMVALUE "STARTDATETIME", datStart
.REPLACEITEMVALUE "StartTime", datStart
.REPLACEITEMVALUE "StartDate", datStart
.REPLACEITEMVALUE "EndDateTime", datEnde
.REPLACEITEMVALUE "EndTime", datEnde
.REPLACEITEMVALUE "EndDate", datEnde
If AppointmentType = 2 Then 'Bei ganztägige Veranstaltung Je Tag Ein Arrayeintag erforderlich
Dim arrCalenderDateTime() As Date
ReDim arrCalenderDateTime(dblAnzahlTage - 1)
For intZaehler = 0 To dblAnzahlTage - 1
arrCalenderDateTime(intZaehler) = DateAdd("d", intZaehler, datStart)
Next
.REPLACEITEMVALUE "CalendarDateTime", arrCalenderDateTime
Else
.REPLACEITEMVALUE "CalendarDateTime", datStart
End If
'## Attendee-related data
If AppointmentType = 3 Then 'Meeting
Dim arrRequiredAttendeeName() As String
arrRequiredAttendeeName = Split(pstrRecipient, ",")
For intZaehler = 0 To UBound(arrRequiredAttendeeName)
'Bei den Empfängern darf der Absender nicht enthalten sein!!
If Trim(arrRequiredAttendeeName(intZaehler)) = strUserMail Then
arrRequiredAttendeeName(intZaehler) = vbNullString
Else
arrRequiredAttendeeName(intZaehler) = Trim(arrRequiredAttendeeName(intZaehler))
End If
Next
.APPENDITEMVALUE "RequiredAttendees", arrRequiredAttendeeName
.APPENDITEMVALUE "AltRequiredNames", arrRequiredAttendeeName
'Call objNotesDocument.AppendItemValue("INetRequiredNames", arrRequiredAttendeeNameAndEmail)
'Call objNotesDocument.REPLACEITEMVALUE("StorageRequiredNames", ".")
.APPENDITEMVALUE "SendTo", arrRequiredAttendeeName
'Call objNotesDocument.APPENDITEMVALUE("NoticeType", "I")
End If
'## System variables
.REPLACEITEMVALUE "$UpdatedBy", objNotesSession.UserName
.REPLACEITEMVALUE "OrgTable", "C0"
.REPLACEITEMVALUE "Principal", objNotesSession.UserName
.REPLACEITEMVALUE "$Alarm", 1
.REPLACEITEMVALUE "$AlarmOffset", -15
.REPLACEITEMVALUE "Alarms", "1"
Select Case AppointmentType
Case 0 'Appointment
intIconNr = 160
Case 1 'Anniversary
intIconNr = 63
Case 2 'AllDayEvent
intIconNr = 9
Case 3 'Meeting
intIconNr = 158
Case 4 'Reminder
intIconNr = 10
End Select
.REPLACEITEMVALUE "_ViewIcon", intIconNr
If AppointmentType = 3 Then .SEND False 'Wenn Meeting dann Einladungen senden
.Save True, False
'Damit der Alarm auch funtioniert
.PUTINFOLDER "$Alarms", True
End With
proc_exit:
Set objNotesDocument = Nothing
Set objNotesDatabase = Nothing
Set objNotesSession = Nothing
Exit Function
proc_error:
SendNotesTermin = Err.Description
Resume proc_exit
End Function
Public Function fktAufrunden(Zahl As Double, Stellen As Integer) As Double
If IsNull(Zahl) = True Then
fktAufrunden = 0
Else
Zahl = CDec(Zahl)
If ((Zahl - Int(Zahl)) * 10 ^ Stellen) = 0 Then
fktAufrunden = Int(Zahl) + (Int(((Zahl - Int(Zahl)) * 10 ^ Stellen)) / 10 ^ Stellen)
Else
fktAufrunden = Int(Zahl) + (Int(((Zahl - Int(Zahl)) * 10 ^ Stellen) + 1) / 10 ^ Stellen)
End If
End If
End Function
Public Function SendNotesTermin(pstrSubject As String, _
pstrRecipient As String, _
pstrMailBody As String, _
AppDate As Date, _
StartTime As Date, _
MinsDuration As Integer, _
pstrLocation As String, _
pstrCategories As String, _
AppointmentType As String) As String
'Aufgabe: Sendet Termine via Notes
'Rückgabe: String mit Fehlermeldung bei auftretendem Fehler, sonst Leerstring
'
'pstrSubject: Betreff
'pstrRecipient: Empfänger mit Komma getrennt
'pstrMailBody: Text
'AppDate: Datum Termin
'StartTime: Uhrzeit Termin
'MinsDuration: Dauer in Minuten
'pstrLocation: Ort
'pstrCategories: Kategorie
'AppointmentType: 0=Termin, 1=Jahrestag, 2=Ganztägige Veranstaltung, 3=Meeting, 4=Erinnerung
'
'WICHTIG: Damit die Funktion "Status der eingeladenen Personen prüfen" sauber funktioniert
' müssen die internen Aderssen im Notes Format "Max Muster/Intern/xxxx" übergeben werden.
On Error GoTo proc_error
Dim objNotesSession As Object
Dim objNotesDatabase As Object
Dim objNotesDocument As Object
Dim objItem As Object
Dim strServerName As String
Dim strServerEinzelname() As String
Dim strMailDbName As String
Dim strUserName As String
Dim strUserEinzelname() As String
Dim strUserMail As String
Dim datStart As Date
Dim datEnde As Date
Dim intZaehler As Integer
Dim dblAnzahlTage As Double
Dim strCSTrack(2) As String
Dim intAnzahlEmpfaenger As Integer
Dim strStorageRequiredNames() As String
SendNotesTermin = ""
'Bei ganztägige Veranstaltung auf 4 Uhr Starttag und 22 Uhr Endtage setzen
If AppointmentType = 2 Then
datStart = CDate(AppDate & " " & "04:00")
dblAnzahlTage = fktAufrunden(MinsDuration / 60 / 24, 0) ' Berechnung Tage
datEnde = CDate(Format(DateAdd("d", dblAnzahlTage - 1, datStart), "dd.mm.yyyy") & " 22:00")
Else
datStart = CDate(AppDate & " " & Format(StartTime, "hh:mm"))
datEnde = DateAdd("n", MinsDuration, datStart)
End If
Set objNotesSession = CreateObject("Notes.NotesSession")
strUserName = objNotesSession.UserName
strUserMail = Replace(Replace(Replace(strUserName, "CN=", ""), "OU=", ""), "O=", "")
strServerName = objNotesSession.GETENVIRONMENTSTRING("MailServer", True)
strMailDbName = objNotesSession.GETENVIRONMENTSTRING("MailFile", True)
strServerEinzelname = Split(Replace(Replace(Replace(strServerName, "CN=", ""), "OU=", ""), "O=", ""), "/")
strUserEinzelname = Split(Replace(Replace(Replace(strUserName, "CN=", ""), "OU=", ""), "O=", ""), "/")
Set objNotesDatabase = objNotesSession.GETDATABASE(strServerName, strMailDbName)
Set objNotesDocument = objNotesDatabase.CREATEDOCUMENT
With objNotesDocument
'Universal ID eintragen
.APPTUNID = objNotesDocument.UNIVERSALID
'Appointment Type
.REPLACEITEMVALUE "Form", "Appointment"
.REPLACEITEMVALUE "AppointmentType", AppointmentType
'Was, wo und warum
.REPLACEITEMVALUE "Categories", pstrCategories
.REPLACEITEMVALUE "Location", pstrLocation
.REPLACEITEMVALUE "Subject", pstrSubject
.REPLACEITEMVALUE "Body", pstrMailBody
'Eigentümer
.REPLACEITEMVALUE "Chair", objNotesSession.UserName
.REPLACEITEMVALUE "AltChair", objNotesSession.UserName
.REPLACEITEMVALUE "From", objNotesSession.UserName
Set objItem = .GETFIRSTITEM("From")
objItem.ISNAMES = True
objItem.ISAUTHORS = True
Set objItem = Nothing
.REPLACEITEMVALUE "Principal", objNotesSession.UserName
.REPLACEITEMVALUE "$AltPrincipal", objNotesSession.UserName
'Einstellung einer Erinnerung in Minuten
.REPLACEITEMVALUE "$Alarm", 1
.REPLACEITEMVALUE "$AlarmOffset", -15
.REPLACEITEMVALUE "Alarms", "1"
'Welches Icon soll angezeigt werden
Select Case AppointmentType
Case 0 'Appointment
.REPLACEITEMVALUE "_ViewIcon", 160
.REPLACEITEMVALUE "$IconSwitcher", "Appointment"
Case 1 'Anniversary
.REPLACEITEMVALUE "_ViewIcon", 63
.REPLACEITEMVALUE "$IconSwitcher", "Anniversary"
Case 2 'AllDayEvent
.REPLACEITEMVALUE "_ViewIcon", 9
.REPLACEITEMVALUE "$IconSwitcher", "AllDayEvent"
Case 3 'Meeting
.REPLACEITEMVALUE "_ViewIcon", 158
.REPLACEITEMVALUE "$IconSwitcher", "Meeting"
Case 4 'Reminder
.REPLACEITEMVALUE "_ViewIcon", 10
.REPLACEITEMVALUE "$IconSwitcher", "Reminder"
End Select
'Zeit und Datum
.REPLACEITEMVALUE "StartDateTime", datStart
.REPLACEITEMVALUE "EndDateTime", datEnde
.REPLACEITEMVALUE "StartDate", datStart
.REPLACEITEMVALUE "StartTime", datStart
.REPLACEITEMVALUE "EndDate", datEnde
.REPLACEITEMVALUE "EndTime", datEnde
.REPLACEITEMVALUE "$NoPurge", datEnde
If AppointmentType = 2 Then 'Bei ganztägige Veranstaltung je Tag Ein Arrayeintag erforderlich
Dim arrCalenderDateTime() As Date
ReDim arrCalenderDateTime(dblAnzahlTage - 1)
For intZaehler = 0 To dblAnzahlTage - 1
arrCalenderDateTime(intZaehler) = DateAdd("d", intZaehler, datStart)
Next
.REPLACEITEMVALUE "CalendarDateTime", arrCalenderDateTime
Else
.REPLACEITEMVALUE "CalendarDateTime", datStart
End If
'## Attendee-related data
If AppointmentType = 3 Then 'Meeting
Dim arrRequiredAttendeeName() As String
arrRequiredAttendeeName = Split(pstrRecipient, ",")
For intZaehler = 0 To UBound(arrRequiredAttendeeName)
'Bei den Empfängern darf der Absender nicht enthalten sein!!
If Trim(arrRequiredAttendeeName(intZaehler)) = strUserMail Then
arrRequiredAttendeeName(intZaehler) = vbNullString
Else
arrRequiredAttendeeName(intZaehler) = Trim(arrRequiredAttendeeName(intZaehler))
End If
Next
.REPLACEITEMVALUE "Recipients", arrRequiredAttendeeName
.REPLACEITEMVALUE "RequiredAttendees", arrRequiredAttendeeName
'.REPLACEITEMVALUE "AltRequiredNames", arrRequiredAttendeeName
.REPLACEITEMVALUE "SendTo", arrRequiredAttendeeName
Set objItem = .GETFIRSTITEM("SendTo")
objItem.ISNAMES = True
objItem.ISSIGNED = True
Set objItem = Nothing
'.REPLACEITEMVALUE "INetRequiredNames", arrRequiredAttendeeNameAndEmail
intAnzahlEmpfaenger = UBound(arrRequiredAttendeeName)
ReDim strStorageRequiredNames(intAnzahlEmpfaenger)
For intZaehler = 0 To intAnzahlEmpfaenger
strStorageRequiredNames(intZaehler) = "1"
Next
.REPLACEITEMVALUE "StorageRequiredNames", strStorageRequiredNames
Set objItem = .GETFIRSTITEM("StorageRequiredNames")
objItem.ISNAMES = True
Set objItem = Nothing
.REPLACEITEMVALUE "$CSVersion", "2"
.REPLACEITEMVALUE "$CSWISL", Array("$S:1", "$L:1", "$B:1", "$R:1", "$E:1", "$W:1", "$O:1", "$M:1")
.REPLACEITEMVALUE "$WatchedItems", Array("$S", "$L", "$B", "$R", "$E", "$W", "$O", "$M")
strCSTrack(0) = "Send[" & strServerEinzelname(0) & "] by Notes on " & strUserEinzelname(0) & "(" & objNotesSession.NOTESVERSION & ") at " & Format(Now(), "DD.MM.YYYY HH:MM:SS")
strCSTrack(1) = "PrepareToSend[" & strServerEinzelname(0) & "] by Notes on " & strUserEinzelname(0) & "(" & objNotesSession.NOTESVERSION & ") at " & Format(Now(), "DD.MM.YYYY HH:MM:SS")
strCSTrack(2) = "Restore[" & strServerEinzelname(0) & "] by Notes on " & strUserEinzelname(0) & "(" & objNotesSession.NOTESVERSION & ") at " & Format(Now(), "DD.MM.YYYY HH:MM:SS")
.REPLACEITEMVALUE "$CSTrack", strCSTrack
.REPLACEITEMVALUE "$TableSwitcher", "Description"
.REPLACEITEMVALUE "NoticeType", "I"
End If
'## BusyTime Items
.REPLACEITEMVALUE "$BusyName", strUserName
Set objItem = .GETFIRSTITEM("$BusyName")
objItem.ISNAMES = True
Set objItem = Nothing
.REPLACEITEMVALUE "BookFreeTime", ""
.REPLACEITEMVALUE "$BusyPriority", "1"
'## System variables
.REPLACEITEMVALUE "$UpdatedBy", objNotesSession.UserName
.REPLACEITEMVALUE "OrgTable", "C0"
.REPLACEITEMVALUE "$PublicAccess", "1"
.REPLACEITEMVALUE "StartTimeZone", "Z=-1$DO=1$DL=3 -1 1 10 -1 1$ZX=86$ZN=W. Europe"
.REPLACEITEMVALUE "$ExpandGroups", "3"
.REPLACEITEMVALUE "$FromPreferredLanguage", "de"
.REPLACEITEMVALUE "$LangChair", ""
.REPLACEITEMVALUE "$SMTPKeepNotesItem", "1"
.REPLACEITEMVALUE "UpdateSeq", 1
.REPLACEITEMVALUE "WebDateTimeInit", "1"
.REPLACEITEMVALUE "ExcludeFromView", Array("S", "D")
.REPLACEITEMVALUE "MailOptions", ""
.REPLACEITEMVALUE "Resources", ""
.REPLACEITEMVALUE "Repeats", ""
.REPLACEITEMVALUE "RoomToReserve", ""
'Überprüfen vor dem Speichern bzw. Versand
If .COMPUTEWITHFORM(True, False) = False Then
MsgBox "Bei der Erstellung des Termins ist ein Fehler aufgetreten!"
GoTo proc_exit
End If
'Wenn Meeting dann Einladungen senden
If AppointmentType = 3 Then
.SAVEMESSAGEONSEND = False ' bei True wird ein Exemplar in Notes in Gesendet gestellt
.SIGNONSEND = True
'Bereinigungen damit Einladung optisch richtig ankommt
.REPLACEITEMVALUE "Form", "Notice"
.REPLACEITEMVALUE "_ViewIcon", 133 'Invitation
.REPLACEITEMVALUE "ExcludeFromView", Array("A")
Set objItem = .GETFIRSTITEM("$BusyPriority")
objItem.Remove
Set objItem = Nothing
Set objItem = .GETFIRSTITEM("CalendarDateTime")
objItem.Remove
Set objItem = Nothing
'senden
.SEND False
'Bereinigungen wieder zurück
.REPLACEITEMVALUE "Form", "Appointment" 'Meeting
.REPLACEITEMVALUE "_ViewIcon", 158
.REPLACEITEMVALUE "ExcludeFromView", Array("S", "D")
.REPLACEITEMVALUE "$BusyPriority", "1"
.REPLACEITEMVALUE "CalendarDateTime", datStart
'Bereinigungend damit Meeting richtig gespeichert wird und es keine Fehlermeldungen bei Änderung gibt
Set objItem = .GETFIRSTITEM("SendTo")
objItem.Remove
Set objItem = Nothing
Set objItem = .GETFIRSTITEM("NoticeType")
objItem.Remove
Set objItem = Nothing
End If
'Im Kalender speichern
.Save True, False
'Damit der Alarm auch funtioniert
.PUTINFOLDER "$Alarms", True
End With
proc_exit:
Set objNotesDocument = Nothing
Set objNotesDatabase = Nothing
Set objNotesSession = Nothing
Exit Function
proc_error:
SendNotesTermin = Err.Description
Resume proc_exit
End Function
Public Function fktAufrunden(Zahl As Double, Stellen As Integer) As Double
If IsNull(Zahl) = True Then
fktAufrunden = 0
Else
Zahl = CDec(Zahl)
If ((Zahl - Int(Zahl)) * 10 ^ Stellen) = 0 Then
fktAufrunden = Int(Zahl) + (Int(((Zahl - Int(Zahl)) * 10 ^ Stellen)) / 10 ^ Stellen)
Else
fktAufrunden = Int(Zahl) + (Int(((Zahl - Int(Zahl)) * 10 ^ Stellen) + 1) / 10 ^ Stellen)
End If
End If
End Function
Kann mir jemand sagen wie der Sub zu dieser Funktion ausehen müsste??
So wollt ichs auch probieren, da kommt dann immer die Fehlermeldung "Argument ist nicht optional" mit Markierung auf "Call SendNotesTermin" ....
Call SendNotesTermin("Test", "shecky_darling@web.de", "Termintext", "04.09.2012", [60], "Kempten", "Meeting", [3])
Wir haben jetzt Notes 8.5.2 das hat leichte Anpassungen erforderlich gemacht.
Anbei der neue Code
Grüße
Eric Trösch
Wir haben jetzt Notes 8.5.2 das hat leichte Anpassungen erforderlich gemacht.
Anbei der neue Code
...
Grüße
Eric Trösch