Introducción a los Lotus Domino Objects

Cortesía de iwebcode.

Lotus Notes puede utilizar perfectamente objetos COM y controles ActiveX. Esto le confiere mucha potencia al desarrollar aplicaciones desde el propio entorno de desarrollo (Domino Designer). Ahora bien, si lo que deseamos es crear una aplicación (por ejemplo: Visual Basic) que acceda a los objetos de Lotus Notes (bases de datos, vistas, documentos, etc.) entonces tenemos un problema. Para solucionar esto y permitir a otras aplicaciones interactuar con los objetos de Notes, Lotus pone a disposición de los desarrolladores de aplicaciones y usuarios los llamados Lotus Domino Objects.

Los Lotus Domino Objects están basados en el Domino Object Model (Modelo de objetos de Domino) con el que los programadores que hayan utilizado LotusScript estarán bastante familiarizados. Estos objetos (existen más de 30) ponen a disposición de los usuarios cerca de 600 métodos y propiedades para poder acceder a los servicios proporcionados por Lotus Notes desde otros entornos de desarrollo y aplicaciones habilitadas para trabajar con el modelo COM (por ejemplo Visual Basic o MS Office).

Lotus Domino Objects

Los componentes COM de Lotus Domino Objects acceden directamente a los servicios de Lotus Notes y Domino. El mecanismo de acceso se encuentra encapsulado dentro de las clases definidas para este modelo de componentes y son transparentes al usuario, de forma que la única acción a realizar es declararlos y empezar a utilizarlos del mismo modo que en una función LotusScript.

La potencia que nos ofrecen estas clases es muy alta ya que nos permite desde crear un programa en Visual Basic que acceda a nuestro correo, hasta el diseño de un informe en MS Excel obteniendo los datos desde una vista de una base de datos Lotus Notes.

Disponibilidad

Este modelo de componentes solamente se encuentra disponible para la versión R5 de Lotus Notes/Domino, y más concretamente desde la versión 5.0.2b del mismo. Al instalar esta versión los componentes quedan registrados en Windows para poder acceder a ellos desde otras aplicaciones. De todos modos siempre se puede obligar a Windows a registrar los componentes utilizando el comando siguiente:

regsvr32 c:lotus
otes
lsxbe.dll

La via de acceso al archivo nlsxbe.dll puede cambiar en cada instalación dependiendo de la carpeta donde se haya instalado el cliente Lotus Notes.

Debido lo extenso del tema no he incluido ningún ejemplo práctico sobre los Lotus Domino Objects pero he incluido una serie de enlaces a diversos sitios de la red donde podréis encontrar información detallada sobre los mismos:

www.microsoft.com/com
Sede web de Microsoft con información sobre los objetos COM.
www.redbooks.ibm.com
IBM RedBooks, en concreto el llamado COM Together - with Domino con el número de serie: SG24-5670-00. Este manual es la base para entender el funcionamiento de los Lotus Domino Objects. En él hay numerosos ejemplos y una explicación detallada de los servicios que ofrecen los componentes.
Si alguno de vosotros tiene problemas al intentar descargar este Redbook, enviadme un e-mail y os lo enviaré por correo electrónico directamente a todos los que me lo solicitéis.
ftp://www.redbooks.ibm.com/redbooks/SG245670/
Ejemplos prácticos sobre los Lotus Domino Objects. Existen ejemplos para Visual Basic, Visual C++, ASP, MS Office, etc.
http://www.lotus.com/home.nsf/welcome/developernetwork
Página Web de Lotus Developer Network desde donde os podréis descargar el toolkit para desarrollo y con ejemplos prácticos.

Un ejemplo práctico

Vamos a ver una ejemplo práctico de como pueden usarse para crear aplicaciones externas que utilicen las posibilidades de Lotus Notes.

La aplicación que he realizado y que os podéis descargar consiste en un pequeño programa Visual Basic 6 que permite el envío de mensajes de correo utilizando los Lotus Domino Objects. La imagen que se muestra a continuación muestra el aspecto final del programa:

Aspecto del programa

Vamos a ver los pasos a seguir para crear este programa:

  1. Crear un nuevo proyecto Visual Basic.
  2. Seleccionar Lotus Domino Objects desde el menú Proyecto -> Referencias...
  3. Crear los distintos controles para cada uno de los campos. El campo "Dirección correo" debe llamarse email, el campo "Asunto" debe llamarse asunto y el campo "Mensaje" debe llamarse mensaje. Así mismo, deben crearse dos botones: Enviar y Salir.
  4. Situar el siguiente código en el apartado (General) - (Declarations):
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
  5. Situar el siguiente código en el evento Load del formulario:
    Call session.Initialize
    Set db = session.GetDatabase("nombre_servidor_Domino", "ruta_y_nombre_archivo_correo.nsf")
  6. Situar el siguiente código en el evento Click del botón Enviar:
    Set doc = db.CreateDocument
    Call doc.AppendItemValue("Form", "memo")
    Call doc.AppendItemValue("SendTo", email.Text)
    Call doc.AppendItemValue("Subject", asunto.Text)
    Call doc.AppendItemValue("Body", mensaje.Text)
    Call doc.Send(False)
    Unload Me
  7. Situar el siguiente código en el evento Click del botón Salir:
    Unload Me
  8. Compilar el proyecto y ejecutarlo.

Explicación:

Tal como podéis observar el código no difiere mucho del que se utiliza habitualmente para programas en LotusScript ya que LotusScript es compatible con el lenguaje Basic de Microsoft.

La clave de todo se encuentra en el paso 2, es decir, activar la referencia a los Lotus Domino Objects dentro del proyecto. A partir de este punto ya se pueden utilizar todos los objetos disponibles así como sus métodos y propiedades.

En el paso 4 se declaran las variables que se van a utilizar, estas son: session, db y doc, cada una de ellas creada a partir de un objeto NotesSession, NotesDatabase y NotesDocument respectivamente.

La función session.Initialize del paso 5 indica a los Lotus Domino Objects que debe crearse una sesión nueva, esto provocará que aparezca una ventana solicitando la contraseña de Lotus Notes. Si queréis que esta ventana no aparezca podéis pasar como parámetro de la función Initialize vuestra contraseña en formato string.

La función session.GetDatabase("nombre_servidor_Domino", "ruta_y_nombre_archivo_correo.nsf") realiza la apertura de nuestra base de datos de correo. La variable "nombre_servidor_Domino" debe contener el nombre completo de nuestro servidor Domino y la variable "ruta_y_nombre_archivo_correo.nsf" debe contener la ruta y el nombre de nuestro archivo de correo en el servidor (habitualmente será algo parecido a MAILarchivo.nsf).

El resto ya es muy claro: al pulsar el botón Enviar se crea un nuevo documento en la base de datos de correo rellenando los campos necesarios para realizar el envió que finalmente se realiza al ejecutar la función doc.Send(False).

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO