Archivo del sitio

Crear una entrada en Agenda mediante LotusScript por @Calitrunks


Como hay poca documentación en español acerca de programación para lotus notes, quise compartir este post el día de hoy para todos a quienes pueda servirles. Consiste en crear una entrada en la agenda de correo del usuario con una alerta emergente.

En primer lugar debemos abrir la agenda del usuario sobre el que deseemos crear la entrada(demás esta decir que el usuario que ejecuta el proceso, deberá tener delegado el acceso de escritura en la agenda del usuario que recibirá la entrada). Para abrir la agenda podemos ejecutar el siguiente script,

Sub AbreAgenda(usuario)
On Error Goto ER

Dim dbnames As NotesDatabase
Dim vista As NotesView
Dim doc As NotesDocument
Print “abriendo agenda de ” & usuario
Set dbnames = New NotesDatabase(“servidor/dominio”,”names.nsf”)
Set vista = dbnames.GetView(“($NamesFieldLookup)”)
Set doc = vista.GetDocumentByKey(usuario,True)

If Not doc Is Nothing Then
Set Agenda = New NotesDatabase(doc.MailServer(0), doc.MailFile(0))
Else
Set Agenda = Nothing
End If

Exit Sub
ER:
If Err = 4060 Then
Print “ERROR CON LA AGENDA DEL USUARIO ” & Ucase(usuario)
Exit Sub
Else
Msgbox Error & ” en AbreAgenda linea ” & Erl & ” ” & Err
Exit Sub
End If
End Sub

Luego, podemos ejecutar el siguiente script para crear el recordatorio en la agenda del usuario.

Sub CreaEntradaAgenda()
On Error Goto ER

Dim ws As New NotesUIWorkspace
Set docAgenda = Agenda.CreateDocument

docAgenda.Form=”Appointment”
docAgenda.Subject= estedoc.Mensaje(0)
docAgenda.AppointmentType = “4”
docAgenda.StartDateTime = Now
docAgenda.EndDateTime = Now
docAgenda.StartDate = Now
docAgenda.EndDate = Now
docAgenda.StartTime = Time
docAgenda.EndTime = Time
Call docAgenda.ReplaceItemValue(“_ViewIcon”, 10)
Call docAgenda.ReplaceItemValue(“$PublicAccess”,”1″)
Call docAgenda.ReplaceItemValue(“CalendarDateTime”, Now)
Call docAgenda.ReplaceItemValue(“$Alarm”, “1”)’ activa que tenga alarma
Call docAgenda.ReplaceItemValue(“$AlarmOffset”,0)’ Si es negativo es minutos antes, si es postivo minutos despues, si es 0 enseguida.
Call docAgenda.ReplaceItemValue(“$AlarmUnit”, “M”)
Call docAgenda.ReplaceItemValue(“Alarms”, 1)
Call docAgenda.ComputeWithForm(1,1)
Call docAgenda.Save(1,1)
estedoc.Mensaje = “”
Call ws.EditDocument(True,docAgenda)
Exit Sub
ER:
Msgbox Error & ” en CreaEntradaAgenda linea ” & Erl
Exit Sub
End Sub

Espero que le sea de utilidad.

A %d blogueros les gusta esto: