jueves, 10 de septiembre de 2015

Intalio BPMS | The BASEDIR environment variable is not defined

Cuando instalamos el diseñador de intalio y lo arrancamos en modo eclipse, generalmente no hay problemas ya que no hacemos uso de otra variable de entorno que no sea Java y java es para todo el sistema, por lo tanto no tenemos mayor dificultad cuando iniciamos el designer de Intalio.

Sin embargo luego de descomprimir el paquete de Intalio Server, muchas veces ya tenemos la variable de entorno CATALINA_HOME apuntando a alguna instalación de Tomcat, en este caso cuando arrancamos el server de intalio que consiste en Tomcat tenemos el mensaje de error:

The BASEDIR environment variable is not defined

Y esto mes debido a que nuetra BASEDIR de la vaariable CATALINA_HOME apunta a otro directorio de instalacion, por lo tanto debemos apuntarlo a nuestra instalación del server de instalio, en linux podemos editar el archivo /etc/profile, posterior a esto arrancamos nuevamente instalio con el comando ./startup.sh y no hay problema.

1.- Intentamos arrancar intalio y editamos el profile
slack@zion:~/programas/intalio-bpms-ce-7.0.2/bin$ ./startup.sh 
The BASEDIR environment variable is not defined
This environment variable is needed to run this program
slack@zion:~/programas/intalio-bpms-ce-7.0.2/bin$ sudo gedit /etc/profile


CATALINA_HOME="/home/slack/programas/intalio-bpms-ce-7.0.2"

export JAVA_HOME JSSE_HOME TOMCAT_HOME CATALINA_HOME ANT_HOME

2.- actualizamos el profile y listamos las variables de ambiente con env, ahi ya vemos que se actualizo CATALINA_HOME  a nuestra instalacion del server de intalio
slack@zion:~/programas/intalio-bpms-ce-7.0.2/bin$ . /etc/profile
slack@zion:~/programas/intalio-bpms-ce-7.0.2/bin$ env
LC_PAPER=es_CL.UTF-8
TOMCAT_HOME=/home/slack/programas/apache-tomcat-5.5.33
LC_ADDRESS=es_CL.UTF-8
SSH_AGENT_PID=2559
LC_MONETARY=es_CL.UTF-8
GPG_AGENT_INFO=/tmp/keyring-SvniOz/gpg:0:1
TERM=xterm
SHELL=/bin/bash
CATALINA_HOME=/home/slack/programas/intalio-bpms-ce-7.0.2

3.- arrancamos Intalio BPMS server
slack@zion:~/programas/intalio-bpms-ce-7.0.2/bin$ ./startup.sh
Setting the BASEDIR environment variable to :: +/home/slack/programas/intalio-bpms-ce-7.0.2
Using CATALINA_BASE:   /home/slack/programas/intalio-bpms-ce-7.0.2
Using CATALINA_HOME:   /home/slack/programas/intalio-bpms-ce-7.0.2
Using CATALINA_TMPDIR: /home/slack/programas/intalio-bpms-ce-7.0.2/temp
Using JRE_HOME:        /home/slack/programas/jdk1.7.0_55
Using CLASSPATH:       :/home/slack/programas/intalio-bpms-ce-7.0.2/bin/jcl-over-slf4j-1.7.6.jar:/home/slack/programas/intalio-bpms-ce-7.0.2/bin/slf4j-api-1.7.6.jar:/home/slack/programas/intalio-bpms-ce-7.0.2/bin/slf4j-log4j12-1.7.6.jar:/home/slack/programas/intalio-bpms-ce-7.0.2/bin/log4j-1.2.17.jar:/home/slack/programas/intalio-bpms-ce-7.0.2/var/log:/home/slack/programas/intalio-bpms-ce-7.0.2/bin/bootstrap.jar:/home/slack/programas/intalio-bpms-ce-7.0.2/bin/tomcat-juli.jar
Using CATALINA_PID:    /home/slack/programas/intalio-bpms-ce-7.0.2/bin/pid


4.- vamos a http://localhost:8080/



user : admin
passwd : changeit

y ahora a jugar !

martes, 5 de mayo de 2015

Ejecutar Kettle Transformation ktr por linea de comandos

Muchas veces es recomendable automatizar o programar algunas tareas de transformación de información o carga masiva a una base de datos, afortunadamente existen herramientas de transformación de datos para estos fines, recomiendo la suite de pentaho y específicamente kettle pdi data integration la que permite estas tareas y otras ahorrándonos bastante tiempo en escribir código

primero diseñamos un flujo de transformación de información para cargar una base de datos, esto genera el archivo .ktr (kettle tranaformation) o podemos crear un job programado para ejecutar bajo ciertas condiciones, este es mi flujo ktr:



El flujo anterior ejecuta 4 pasos y utiliza una base de datos postgres donde se cargan mas de 100 mil registros a una tabla de 20 campos en tan solo 3 segundos

paso 1: se trunca la tabla
paso 2: se lee el archivo de entrada (txt, csv, etc)
paso 3: se agrega la secuencia correlativa para cada registro
paso 4: se carga la tabla en bloques configurables, en mi caso en bloques de 50 mil registros

la tarea se puede ejecutar desde el modo gráfico o desde la consola mediante comandos, el comando y la salida para ejecutar una ktr (kettle transformation) es la siguiente:

slack@zion:~/programas/data-integration$ ./pan.sh /file:"/home/slack/desarrollo/appripley/metadata/pdi/skuloader.ktr" /level:basic
2015/05/05 10:16:55 - Pan - Logging is at level : Basic logging
2015/05/05 10:16:55 - Pan - Start of run.
2015/05/05 10:16:55 - skuloader - Iniciado despacho de la transformación [skuloader]
2015/05/05 10:16:56 - Salida Tabla.0 - Connected to database [appripley] (commit=50000)
2015/05/05 10:16:56 - Ejecutar script SQL.0 - Terminado la lectura de la consulta, cerrando conexión.
2015/05/05 10:16:56 - Ejecutar script SQL.0 - Procesamiento finalizado (I=0, O=0, R=0, W=1, U=0, E=0
2015/05/05 10:16:56 - Entrada Fichero de Texto.0 - Opening file: file:///home/slack/Xerox/Ripley/GestorDePrecios/muestras_ripley/pop/ReporteSkuEventoPreciosLMO_Mon.txt
2015/05/05 10:16:58 - Entrada Fichero de Texto.0 - linenr 50000
2015/05/05 10:16:58 - Añadir secuencia.0 - Número de línea 50000
2015/05/05 10:16:58 - Entrada Fichero de Texto.0 - Procesamiento finalizado (I=67294, O=0, R=0, W=67293, U=1, E=0
2015/05/05 10:17:02 - Salida Tabla.0 - linenr 50000
2015/05/05 10:17:02 - Añadir secuencia.0 - Procesamiento finalizado (I=0, O=0, R=67293, W=67293, U=0, E=0
2015/05/05 10:17:03 - Salida Tabla.0 - Procesamiento finalizado (I=0, O=67293, R=67293, W=67293, U=0, E=0
2015/05/05 10:17:03 - Pan - Finished!
2015/05/05 10:17:03 - Pan - Start=2015/05/05 10:16:55.618, Stop=2015/05/05 10:17:03.259
2015/05/05 10:17:03 - Pan - Processing ended after 7 seconds.
2015/05/05 10:17:03 - skuloader -  
2015/05/05 10:17:03 - skuloader - Los procesos Ejecutar script SQL.0 han finalizado correctamente, se han procesado 1 líneas. ( 0 líneas)
2015/05/05 10:17:03 - skuloader - Los procesos Entrada Fichero de Texto.0 han finalizado correctamente, se han procesado 67293 líneas. ( 9613 líneas)
2015/05/05 10:17:03 - skuloader - Los procesos Añadir secuencia.0 han finalizado correctamente, se han procesado 67293 líneas. ( 9613 líneas)
2015/05/05 10:17:03 - skuloader - Los procesos Salida Tabla.0 han finalizado correctamente, se han procesado 67293 líneas. ( 9613 líneas)


Existen múltiples tareas que podemos realizar con Kettle, se trata de una aplicación de pentaho BI open source y bastante potente, bien documentada por la comunidad y con un excelente blog de ayuda.

lunes, 27 de abril de 2015

Cambio fecha y hora en linux

La forma más rápida para ajustar la fecha y hora en linux es ejecutar el siguiente comando:

slack@zion:~/programas/argouml-0.34$ sudo date --set "2015-04-27 10:20"
lun abr 27 10:20:00 CLT 2015

donde como root con el prefijo sudo modificamos la hora del sistema operativo para todos los usuarios

saludos

martes, 31 de marzo de 2015

Instalar Eclipse IDE para Java

Esta es una guía rápida para instalar eclipse IDE y comenzar a programar con Java

1.- Descargar e instalar Java JDK para 32 o 64 bit desde (Windows/Linux)

http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html

se recomienda versión 1.6 o superior

2.- Descargar e instalar Eclipse IDE para J2EE 32 o 64 bit desde (Windows/Linux)

https://eclipse.org/downloads/

3.- Abrir Eclipse desde el icono en el escritorio o desde la carpeta de instalación de eclipse ($ECLIPSE_HOME/bin) el archivo eclipse.exe o eclipse.sh windows/linux

4.- Escribir tu primer test (busca una clase simple en internet como hola mundo)

si has tenido problemas en la instalación, revisa que la versión de java sea reconocida automáticamente por el instalador de eclipse, o configura las variables de entorno para java.

lunes, 30 de marzo de 2015

BPM


En esta articulo quiero entregar una definición general de lo que hemos escuchado a cerca de BPM (Bussiness Process Management). Para esto debemos entender que en la actualidad es necesario para las organizaciones la rápida adaptación al cambio como forma de supervivencia, literalmente la organización que no es capaz de adaptarse a su entorno pierde competitividad y al corto plazo perece.
Actualmente existe una tendencia clara hacia este modelo de gestión, BPM corresponde a una disciplina de gestión de procesos y como conjunto de herramientas tecnológicas que apoya el análisis y las operaciones.
El ciclo del modelo de gestión de procesos (BPM) comienza con el levantamiento y documentación de la situación actual (As-Is), luego un análisis mediante un método estratégico que permita identificar mejoras y optimizaciones al proceso, se continua con la simulación donde podemos jugar con los recursos para encontrar el punto óptimo de performance del proceso, y la parte final de este ciclo corresponde al monitoreo del proceso, donde están los denominados BAM (Bussness Activity Monitoring) y los Dashboard que nos permiten saber el comportamiento en linea del proceso para determinar el capacity planning de la operación real.
En la mayoría de los casos la identificación de mejoras pasa por la implementación de tecnología, en otros por la estandarización de actividades i/o formularios, documentos, etc. y la posterior medición del proceso, ambos nos entregan información a cerca de las instancias de procesos, la cual se analiza con herramientas de Process Minning (Minería de Procesos) que nos permiten identificar desvíos, cuellos de botella, reprocesos, etc.
Entonces BPM es una disciplina de gestión de procesos que involucra la mejora continua y la evolución de la organización hacia un modelo de administración gestionado de acuerdo a la visión estratégica de alto nivel de cada organización, apoyado y alienado por el área de TI para la automatización de actividades.
En este enfoque tenemos que la implementación de BPM en una organización contempla un espectro amplio hacia la cultura organizacional. Teniendo que desarrollar los siguientes puntos en busca de la excelencia operacional.
  1. SPM (Strategic Process Managment), como encontrar el foco de mejora
  2. Modeling (Business Process Modeling)
  3. AOPT (Analysis and Optimization)
  4. BPI (Business Process Implementation)
  5. Minning (Minería de Procesos)