Archivo de la categoría: Scripts

Capitulo 08 – Programando en Lotus Notes desde 0 – Agentes

Este es el octavo y último capítulo de mi curso de programación en lotus notes desde 0. en este apartado hablaremos acerca de los agentes. Veremos como crearlos y ejecutarlos ya sea de manera programada o manual.

Adicionalmente veremos como recorrer los documento de una vista  mediante el lenguaje lotusscript.

Al final del curso tengo una gran noticia que compartir con ustedes, pueden ver mas detalles en el siguiente link

Anuncios

Capitulo 07 – Programando en Lotus Notes desde 0 – Estructura Grafica de Aplicaciones

Seguimos avanzando en nuestro curso de Programacion en Lotus Notes desde 0. En este Capitulo veremos como organizar la estructura gráfica de las aplicaciones en lotus notes.

Algunos elementos de diseño que conoceremos en este apartado son:

  • Outline
  • Paginas
  • Frameset
  • Botones
  • Tablas

En nuestra próxima entrega hablaremos sobre los “Agentes”. No olviden suscribirse gratis al blog dejando su correo electrónico, de esa forma se enterarán en cuanto publiquemos nuevos contenidos.

Capitulo 06 – Programando en lotus notes desde 0 – Búsqueda de datos con Lotusscript

Hola amigos, aquí esta nuestra sexta entrega del curso de programación en Lotus notes desde 0. En esta ocasión haremos un segundo capítulo con el trabajo en lenguaje lotuscript.

En este capítulo aprenderemos a buscar datos en vistas utilizando este lenguaje utilizando el método getdocumenbykey.  

Además aprenderemos en términos simples:

  • Creación de botónes.
  • El objeto Session.
  • El Objeto Notesdatabase.
  • El Objeto NotesView.
  • Ordenamiento de columnas en vistas.
  • Validación de Documentos Nulos.

Si tienen alguna duda no olviden dejarme un comentario al final de la página o en la cajita de comentarios de youtube. No dejen de suscribirse al blog dejando su correo o mediante el canal de youtube, es totalmente gratis y podrán enterarse de esa forma sobre los nuevos contenidos que publicamos cada semana.

Capitulo 05 – Programando en Lotus Notes desde 0 – Lotusscript 1

Continuando con nuestro curso de programación en lotus notes desde 0 llegamos al capitulo 05. Hasta ahora hemos aprendido a programar en lenguaje de formula pero vamos a comenzar a programar en lotusscript desde este capitulo.

En esta ocasión les enseñaré a como hacer validaciones de campo, objetos básicos como documentos y workspace.

Cualquier duda o comentario sobre los contenidos o ejercicios que les voy dejando pueden ingresar un comentario y espero poder aclarar sus dudas.

Exportar el Contenido de la Acl de una base lotus notes a Excel.

acl

Hola a todos, hace mucho no escribía algo sobre lotus y como me siguen pidiendo que lo haga les comparto brevemente un código que puede serles útil.

Una de las virtudes de Notes es la seguridad, esta se puede delimitar en la ACL o Lista de Control de accesos, mediante diferentes niveles  predefinidos por la plataforma e incluso roles que nosotros podamos crear para nuestras aplicaciones.

Uno de los problemas que suele ocurrir en el tiempo es la poca mantención que se realiza sobre las aplicaciones, lo que deriva en enormes listas en la ACL y vulnerabilidades importantes, por lo que para cuando nos piden realizar una revisión de el estado actual de la lista se puede transformar en una pesadilla.

Mediante el script que comparto pueden crear un agente que entregará el listado detallado de la ACL y lo que cada usuario puede hacer sobre su aplicación.

El Agente.

Sub Initialize
On Error Goto ER

  Dim s As New NotesSession
  Dim db As NotesDatabase
  Dim acl As NotesACL
  Dim entry As NotesACLEntry
  Dim Excel As Variant
  Dim xlWorkbook As Variant
  Dim xHoja As Variant
  Dim nam As NotesName

  Set db = s.CurrentDatabase
  Set acl = db.ACL
  Set entry = acl.GetFirstEntry

  Set Excel = CreateObject( “Excel.Application” )
  Excel.Workbooks.Add ‘//Creamos un libro de Excel nuevo
  Set xlWorkbook = Excel.ActiveWorkbook ‘//Seleccionamos el libro activo
  row = 1’//Inicializamos las columnas a 0

  Excel.Cells(row,1).Value = ” USUARIO”
  Excel.Cells(row,2).Value = “NIVEL DE ACCESO”
  Excel.Cells(row,3).Value = “ROLES”
  Excel.Cells(row,4).Value = “PUEDE BORRAR DOCUMENTOS”
  Excel.Cells(row,5).Value = “PUEDE COPIAR DOCUMENTOS”

  While Not entry Is Nothing
  If entry.IsPerson Then
    row=row+1
   Set nam = s.CreateName(entry.Name)
   Excel.Cells(row,1).Value = nam.Common
   Excel.Cells(row,2).Value = getAcceso(entry.Level)
   strRoles=””
   Forall r In entry.Roles
   If strRoles=”” Then
      strRoles = Ucase(r)
   Else
     strRoles = StrRoles & “,” & Ucase(r)
  End If
  End Forall
  Excel.Cells(row,3).Value = strRoles
  Excel.Cells(row,4).Value =entry.CanDeleteDocuments
  Excel.Cells(row,5).Value =entry.CanReplicateOrCopyDocuments
End If
Set entry = acl.GetNextEntry(entry)
Wend

Excel.Visible = True ‘// Mostramos la ventana de Excel
Exit Sub
ER:
  Msgbox Error & ” en ExportaACL en linea ” & Erl
  Set Excel = Nothing
  Exit Sub
End Sub

La Funcion GetAcceso

Function getAcceso(nivel)
On Error Goto ER

  If nivel=0 Then
     r=”NO ACCESS”
  Elseif nivel=1 Then
     r=”DEPOSITOR”
  Elseif nivel=2 Then
     r=”READER”
  Elseif nivel=3 Then
     r=”AUTHOR”
  Elseif nivel=4 Then
    r=”EDITOR”
  Elseif nivel=5 Then
    r=”DESIGNER”
  Elseif nivel=6 Then
    r=”MANAGER”
 End If

 getAcceso = r

Exit Function
ER:
  Msgbox Error & ” en getAcceso linea ” & Erl
  Exit Function
End Function

Espero que les sea de utilidad.

Encriptar Datos con Codeigniter – @TodProgramacion @emprendelogia

Seguridad-y-Encriptacion

Los temas de seguridad son de los de mayor importancia y de menos consideración en el proceso de desarrollo de aplicaciones. Generalmente nos enfocamos en que las aplicaciones hagan lo que deben hacer y restamos relevancia a este hito, uno de los puntos a considerar dentro de esto es la encriptación de datos. Habitualmente quienes desarrollamos en PHP usados MD5 y/o SHA1, sin embargo el Framework Codeigniter, del cual compartimos un video tutorial hace un tiempo nos ofrece una librería propia bastante fácil y portente de utilizar.

Vamos a compartir con ustedes un video del sitio TodoProgramacion en su canal de youtube que explica como funciona esta librería. Les recomiendo tomar a partir del minuto 28 del video donde encontraran una clara explicación de esta herramienta.

Obtener Dirección IP del Equipo con LotusScript

Entre algunos proyectos con Lotus Notes me surgió la necesidad de obtener la dirección IP del equipo. Buscando en algunos foros encontré esta función que opera de maravilla.

Function getIPAddress() As String
On Error Goto ER
Dim jSession As JavaSession
Dim jClass As JavaClass
Dim jObject As JavaObject
Dim jMethod As JavaMethod

Set jSession = New JavaSession()
Set jClass = jSession.GetClass(“java/net/InetAddress”)
Set jMethod = jClass.GetMethod(“getLocalHost”,”()Ljava/net/InetAddress;”)
Set jObject = jMethod.Invoke()

getIPAddress = jObject.getHostAddress()

Exit Function

ER:
Msgbox Error & ” en GetIPAddress linea ” & Erl
Exit Function
End Function

No deben olvidar usar la siguiente librería en el Declarations del elemento de diseño donde esten trabajando.

Uselsx “*javacon” 

Espero que les sea de utilidad.

Ejecutar un agente en el servidor desde LotusScript

Hoy quiero dejar brevemente con ustedes un código que puede ser útil en algún desarrollo de aplicaciones lotus notes. Se trata de ejecutar un agente, llamándolo desde otra sección de nuestra plataforma(Formulario, Vista, etc) y ejecutarlo directamente en el servidor. A mi me fue de mucha utilidad para algunos scripts que debían conectarse a As400 y no quería depender de un ODBC configurado en los equipos de los clientes.

En primer lugar, debemos llamar al agente desde nuestra rutina de la siguiente forma:

‘LLAMANDO AL AGENTE
Dim agente As NotesAgent ‘ declaramos el agente
Set agente = db.GetAgent(“ObtieneRepuestosAs400”) ‘ instanciamos el agente
agente.RunOnServer(doc.NoteID) ‘ ejecutamos el agente(El objeto doc debe ser el documento desde donde ejecutamos el agente, esto ‘en cas0 que deseemos refrenciar sus campos en el agente de destino)

‘ASI SE RECIBE EL ID EN EL AGENTE PARA REFERENCIAR AL DOCUMENTO
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim agente As NotesAgent

Set agente = s.CurrentAgent
Set doc = db.GetDocumentByID(agente.ParameterDocID)‘ ahora ya podemos referenciar campos del documento en nuestro agente de ‘destino

Diferencia de dias entre dos fechas con LotusScript

calendar_icon

Bueno amigos, continuando con mis aportes acerca del poco conocido mundo de la programación lotus notes, les dejo a continuación una función bastante sencilla pero no por eso menos útil que dadas dos fechas nos entrega la diferencia entre ambas expresada en en días.

Para ello, nos colgaremos de la función TimeDifference, nativa de lotusscript,  que nos entrega la diferencia en segundos entre dos fechas. Por eso dividimos su resultado  por 86400 que son los segundos que tiene un día. Espero les sea de utilidad

Function DiferenciaEnDias(fdesde, fhasta)
On Error Goto ER

Dim dif As Currency
Dim desde As New NotesDateTime(fdesde)
Dim hasta As New NotesDateTime(fhasta)

dif = desde.TimeDifference(hasta)
dif = dif /86400 ‘ 86400 segundos tiene  un día.

DiferenciaEnDias = dif

Exit Function
ER:
Print Error & ” en diferencia en dias en linea ” & Erl
Exit Function
End Function

Exportacion a Excel con LotusScript

Hoy quiero compartir con ustedes un script sencillo, pero siempre util en nuestros desarrollos con lotus, se trata de una exportación a excel, una vez que seleccionamos documentos desde una vista. El siguiente codigo debería ir en un boton de la barra de acciiones de nuestra vista, espero que les sea de utilidad:

Sub Click(Source As Button)
On Error Goto ER

Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim Excel As Variant
Dim xlWorkbook As Variant
Dim xHoja As Variant

Set db = s.CurrentDatabase
Set dc = db.UnprocessedDocuments ‘ La coleccion de documentos corresponde a los seleccionados en la vista por el usuario.
Set doc = dc.GetFirstDocument

Set Excel = CreateObject( “Excel.Application” )
Excel.Workbooks.Add ‘//Creamos un libro de Excel nuevo
Set xlWorkbook = Excel.ActiveWorkbook ‘//Seleccionamos el libro activo

row = 1’//Inicializamos las columnas a 0
documento = 0

Print “Iniciando la creación del Informe…”

Excel.Cells(row,1).Value = “CLIENTE”
Excel.Cells(row,2).Value = “DIRECCION”
Excel.Cells(row,3).Value = “E-MAIL”
Excel.Cells(row,4).Value = “TELEFONO”
Excel.Cells(row,5).Value = “CELULAR”

‘Recorremos los documentos de la colección y vamos construyendo la planilla.
While Not doc Is Nothing
row = row + 1
documento = documento + 1
Print “exportando documento ” & documento & ” de ” & dc.Count
Excel.Cells(row,1).Value = doc.Cliente(0)
Excel.Cells(row,2).Value = doc.odireccion(0)
Excel.Cells(row,3).Value = doc.emailo(0)
Excel.Cells(row,4).Value = doc.telefonoo(0)
Excel.Cells(row,5).Value = doc.ocelu(0)
Set doc = dc.GetNextDocument(doc)
Wend
Excel.Visible = True ‘ Mostramos la ventana de Excel
Exit Sub
ER:
Msgbox Error & ” en intialize linea ” & Erl
Set Excel = Nothing
Exit Sub
End Sub

A %d blogueros les gusta esto: