Avatar billede tjeppsson Nybegynder
25. juli 2007 - 15:35 Der er 1 kommentar

VBSCript til automatiseret Lotus Notes Kalender-oplysninger

Jeg skal kunne automatisere oprettelsen af kalender funktionen i Lotus Notes via vb-script. Scriptet er hentet fra nettet, og jeg har ikke kunne finde hjælp andre steder, og nu råber jeg om hjælp her hos jer.

Jeg er kommet så langt som til at scriptet udfylder de korrekte felter, men i den type kalender, som jeg har valgt (Møde - appointmentType 3), kan jeg ikke gemme og sende invitationen korrekt. Den gemmer som kladde i stedet for, når jeg kalder funktionen for gem, hvilket ødelægger det info som jeg lige har lagt i kalenderen-oplysningen.

Scriptet fungerer hvis det er en aftale (appointmentType 0), da "Gem/Save" er den eneste mulighed for denne type aftale.

Hvis jeg undlader at gemme og lukke dokumentet, og selv trykker på knappen "Gem og send invitation" når jeg har født data automatisk i felterne fungerer det, men jeg ville gerne have en fuld-automatiseret version uden bruger-interaktion.

'***************Kode***************
<script LANGUAGE="VBScript" >
Sub SendNotesAppointment()
On Error Resume Next

Dim UserName
Dim Subject
Dim Body
Dim AppDate
Dim StartTime
Dim MinsDuration
Dim MailDbName
    Dim strSTime
    Dim strETime
    Dim CalenDoc
    Dim WorkSpace
    Dim ErrCnt
    Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")
AppDate = "28-07-2007"
UserName = "tj"
Subject = "Her skal teksten stå i subject-linien"

StartTime = #15:00:00#
MinsDuration = 30

    MailDbName = "mail\" + UserName + ".nsf"

    strSTime = CStr(FormatDateTime(StartTime, vbShortTime))
    strETime = CStr(FormatDateTime(DateAdd("n", MinsDuration, StartTime), vbShortTime))

Set CalenDoc = WorkSpace.COMPOSEDOCUMENT("MIN SERVER", MailDbName, "Appointment")

CalenDoc.FIELDSETTEXT "AppointmentType", "3"

        CalenDoc.FIELDSETTEXT "StartDate", CStr(FormatDateTime(AppDate, vbShortDate))
        CalenDoc.FIELDSETTEXT "StartTime", CStr(strSTime)
        CalenDoc.FIELDSETTEXT "EndDate", CStr(FormatDateTime(AppDate, vbShortDate))
        CalenDoc.FIELDSETTEXT "EndTime", CStr(strETime)
        CalenDoc.FIELDSETTEXT "Subject", Subject

        CalenDoc.Refresh

'CalenDoc.Save
'CalenDoc.Close


    Set CalenDoc = Nothing
    Set WorkSpace = Nothing


If Err.Number <> 0 then
' Time to handle the error ourselves...
MsgBox "We've got an error here!" & vbcrlf & _
"Code: " & Err.Number & vbcrlf & _
"Description: "& Err.Description
End if

End Sub
</script>
'***************Kode slut***************

Er der nogen der kender koden for:
'CalenDoc.Save, således at den ikke gemmer kladden, men gemmer og sender invitationen i stedet?
Avatar billede tjeppsson Nybegynder
30. juli 2007 - 09:55 #1
Svaret var:

CalenDoc.Document.ReplaceItemValue "tmpAction", "6"

Hvis man lægger det før man gemmer. Forresten, så er det en god ide, at lægge ind, hvem man inviterer, så det fulde script vil se således ud:

***************Kode start***************
Sub SendNotesAppointment()
On Error Resume Next



Dim UserName
Dim Subject
Dim Body
Dim AppDate
Dim StartTime
Dim MinsDuration
Dim MailDbName
    Dim strSTime
    Dim strETime
    Dim CalenDoc
    Dim WorkSpace
    Dim ErrCnt
    Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")
AppDate = "05-08-2007"
UserName = "TJ"
Subject = "Her skal teksten stå"
Body ="Tekst til body"

StartTime = #15:00:00#
MinsDuration = 30

    MailDbName = "mail\" + UserName + ".nsf"

    strSTime = CStr(FormatDateTime(StartTime, vbShortTime))
    strETime = CStr(FormatDateTime(DateAdd("n", MinsDuration, StartTime), vbShortTime))

    Set CalenDoc = WorkSpace.COMPOSEDOCUMENT("MIN SERVER", MailDbName, "Appointment")

CalenDoc.FIELDSETTEXT "AppointmentType", "3"
   

        CalenDoc.FIELDSETTEXT "StartDate", CStr(FormatDateTime(AppDate, vbShortDate))
        CalenDoc.FIELDSETTEXT "StartTime", CStr(strSTime)
        CalenDoc.FIELDSETTEXT "EndDate", CStr(FormatDateTime(AppDate, vbShortDate))
        CalenDoc.FIELDSETTEXT "EndTime", CStr(strETime)
        CalenDoc.FIELDSETTEXT "Subject", Subject

        CalenDoc.FIELDSETTEXT "EnterSendTo", "TJ"
        CalenDoc.FIELDSETTEXT "Entercopyto", ""
    CalenDoc.FIELDSETTEXT "Enterblindcopyto", ""

CalenDoc.Document.ReplaceItemValue "tmpAction", "6"


        CalenDoc.Refresh

CalenDoc.Save(true)


Call CalenDoc.close



    Set CalenDoc = Nothing
    Set WorkSpace = Nothing


If Err.Number <> 0 then
' Time to handle the error ourselves...
MsgBox "We've got an error here!" & vbcrlf & _
"Code: " & Err.Number & vbcrlf & _
"Description: "& Err.Description
End if

End Sub
***************Kode slut***************
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester