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"
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?
Problemet med Møder er, at sålænge der ikke er udsendt invitationer, så er de pr. definition kladder. Aftaler er enkle (udsender aldrig invitationer). Derfor er koden for AftalerGemLuk det samme som MøderGemSomKladde
Jeg har her kopieret koden ind, som anvendes i selve Notes-formularen.
Aftaler: [Save and Close] FIELD SaveOptions := "";FIELD tmpAction := "2"; @If(@PostedCommand([FileSave]); @PostedCommand([FileCloseWindow]); "")
Møder: [Save and Send Invitations] FIELD tmpAction := "6";@If(@PostedCommand([FileSave]); @PostedCommand([FileCloseWindow]); "")
[Save as Draft] FIELD SaveOptions := "";FIELD tmpAction := "2"; @If(@PostedCommand([FileSave]); @PostedCommand([FileCloseWindow]); "")
Som du kan se, så er den primære forskel at feltet "tmpAction" sættes til "6" for at sende invitationer.
Så for at sætte værdien på tmpAction, skal du anvende koden CalenDoc.Document.tmpAction = "6" eller CalenDoc.Document.ReplaceItemValue("tmpAction", "6")
Jeg er ikke sikker på at det er det hele, men det er en del af vejen ...
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"
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***************
Synes godt om
Ny brugerNybegynder
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.