Tecnolack - blog de cultura geek

Lotus notes: Entendiendo el framework de desarrollo

account_circle Por Sagara access_time 25 de junio del 2013

Lotus Notes

He tenido el placer de trabajar con esta tecnología por cerca de tres años, tanto como desarrollador y como administrador, y aún puedo decir que me sigue sorprendiendo. No solo sus grandiosas características sino por que aún sigue siendo tan selecto y poco conocido por la mayoría. Por eso mismo veamos como crear un escenario desde cero para que sea mas fácil de entender como es el framework de desarrollo de Lotus Notes.

    Al finalizar esta publicación seras capaz de:

  • Entender el framework de Lotus Notes en cuanto al desarrollo y por que NO es una base de datos relacional
  • Crear una Aplicación nueva de Lotus Notes
  • Crear y entender elementos básicos de diseño: Forms, Views, Actions
  • Usar lenguaje @Formula de Lotus Notes

En Domino Designer creamos una base de datos nueva sin usar template (File > New > Application):
Lotus notes-new application

 

Forms

Una vez creada la base de datos vamos a crear nuestro primer Form con el nombre ‘Building’ y alias ‘f_Building’ para guardar documentos con el nombre de ‘Edificios’:

Lotus notes-new form

Básicamente un Form es un elemento que nos permite guardar información en la base de datos por medio de Inputs dentro de un formulario, como en PHP, es solo que Lotus Notes tiene además de forms, los Pages, que es lo mismo solo que no sirven para guardar información solo para desplegar información estática, personalmente yo no utilizo mucho los Pages.

Una vez creada el Form, vamos a crear un Input Field (Create > Field…) con el nombre ‘txt_Building’ donde guardaremos el nombre del edificio:
Lotus notes-new field

Hasta este punto ya somos capaces de crear documentos de la form ‘f_Buildings’ en la BD: para esto le damos clic al botón Preview in Notes, en nuestro cliente va a abrirse un nuevo (untitled) solo vamos a escribir el nombre del primer edificio ‘Edificio 1’ y oprimimos CTRL+S para guardar el documento y listo:
Lotus notes-new document

 

Actions

En cierta forma pareciera que no paso nada, para comprobar que se guardo nuestro documento vamos a necesitar una view pero antes de seguir con la View vamos a crear unos Actions para mejorar esto y usarlos como botones: ‘Save’,’Cancel’ y ‘Edit’. Para eso vamos a menú Create > Action > Action…
Lotus notes-new action

La Formula para cada uno:
Formula del botón Save: @If(@Command([FileSave]);@Command([FileCloseWindow]);»»)
Formula del botón Cancel: @Command([FileCloseWindow])
Formula del botón Edit: @Command([EditDocument])

Para escribir la formula, da clic en cada botón y escribe la formula correspondiente conforme los selecciones:
Lotus notes-edit Action

En el caso del botón Save, estamos condicionando con un @If: si se guarda, ciérralo, si no, no haces nada, que es el tercer parámetro de la condición if «». Mantenemos ‘Client’ en Run y ‘Formula’ como están. Si no te aparece el área donde deben estar los Actions o botones, con el puntero arrastra a la izquierda la barra.

Con eso ya casi estarían listos los botones, solo nos queda agregar una funcionalidad propia de Lotus Notes, la cual nos permite esconder ciertos elementos de diseño dependiendo de ciertas condiciones. Damos clic derecho al botón ‘Save’ y elegimos Action Properties, nos abrirá la misma ventana que cuando lo creamos, solo que ahora damos clic al segundo tab Action Hide When. Y en ‘Hide action when document is’ selecciona ‘Previewed for reading’ y ‘Opened for reading’:
Lotus notes-action hide

Hacemos lo mismo para el botón Edit solo que cambiamos la selección, seleccionamos ‘Previewed for Editing’ y ‘Opened for Editing’, como se muestra:
Lotus notes-action hide

Para el botón Cancel no hace falta, siempre queremos que este visible ya que en ambas condiciones es necesario. La explicación para esto es muy fácil, Lotus Notes siempre sabrá cuando un documento esta en modo lectura o en modo edición, ahora sabiendo esto, es muy practico esconder los botones de acuerdo al estado del documento a nuestra conveniencia.

Ahora probamos los cambios, damos clic al botón Preview in Notes:
Lotus notes-new document

Damos clic a Save y el documento se cerrara por su cuenta como especificamos.

 

Views

Los Views en Lotus Notes son usadas como punto de entrada de la información que esta en la base de datos. Debe existir una View en una base de datos por lo menos. En nuestro escenario ya hemos guardado información solo nos falta comprobarlo. Para eso vamos a crear una nueva View con el nombre ‘v_Buildings’:

Lotus notes-new view

Como pueden ver, en el área de selección elegí «ByFormula» y cambie la @Formula que estaba ‘SELECT @All’ por una selección mas especifica por Form ‘SELECT Form=»f_Building»‘. La View estará listada en las Views del navegador, al abrirla el resultado sera como el siguiente:
Lotus notes-new view

  • Como buena practica recomiendo siempre poner un Alias a las Forms y usarlo en la Seleccion Formula de las Views. Así aseguramos que si se cambian los nombres de las Forms el cambio sera transparente para las Views

Para terminar debemos editar la columna # de la View, especificarle que valor queremos que muestre. Seleccionamos la columna y el panel inferior cambiara con los posibles valores que le podemos asignar a la columna, damos clic por Field y elegimos el campo, en este caso es ‘txt_Building’:
Lotus notes-column values

Para cambiar el nombre de la columna podemos darle doble clic o clic derecho sobre la columna e ir a la opción «column Properties»:
Lotus notes-column properties

Para terminar con la View, agreguemos un Action como con la Form, vamos a menú Create > Action > Action…
Lotus notes-view action

La formula para este action button es: @Command([Compose];»f_Building»)

 

Listo

Guardamos cambios y eso sera suficiente. Ahora solo necesitamos abrir la aplicación, la buscamos en el Workspace en Lotus Notes Client:
Lotus notes-tecnolack app

Si no la encuentran, con CTRL+o busquen ‘tecnolackv1.nsf’ en ‘On my Computer’. O por el nombre que hayan especificado. Una vez abierta damos clic a la View ‘v_Buildings’:
Lotus notes-view list

    Como pueden ver:

  • Se encuentran los 2 documentos que hemos creado al paso del ejercicio
  • Pueden hacer mas pruebas de la funcionalidad de los botones. Da clic a ‘New Building’, escribe el nombre de un tercer edificio ‘Edificio 3’ y da clic en ‘Save’
  • Da doble clic sobre uno de los documentos de la lista, luego clic a ‘Edit’, modifica el nombre y luego clic a ‘Save’
  • Dando clic a ‘Cancel’ cerrara dicho documento nuevo o en edición.

La razón fundamental por que dicen que las Bases de Datos de Lotus Notes no son relacionales es simple, es porque NO son relacionales como pueden ver. La organización de la información es presentada de una forma distinta donde no existe el SQL o Tablas con records con tipos de datos similares.

Las Bases de Lotus Notes pueden contener una cantidad de Notes Documents o documentos, y cada documento puede contener otra cantidad de campos de cualquier tipo. El Schema-less de esta arquitectura es único para guardar una cantidad enorme de diferentes tipos de datos en una solo Base de Datos de una forma extremadamente eficiente. Es eficiente en cuanto a la gestión del espacio en disco pero su desventaja es que ocupan mas espacio en disco debido a que los elementos traen consigo meta-data.

Otra gran ventaja de las Bases Lotus Notes es que la arquitectura esta optimizada para la replicación, lo cual es una característica única de Lotus Notes.

Documentación | IBM

@Mail
Recibe actualizaciones vía email.