Las Actividades Generales se encuentran en la Paleta de Actividades Generales de Business Works. Esta paleta agrupa las actividades de propósito general y actividades para el lanzamiento de instancias de procesos.
La Paleta de Actividades Generales consta de las siguientes Actividades o Tareas:
• Assing. Asignación de un valor a una variable de proceso definida por un usuario.
• Call Process. Llamada y ejecución de un proceso.
• Catch. Captura de excepciones no controladas.
• CheckPoint. Fijar punto de control en las instancias del proceso para su recuperación.
• Confirm. Confirma un mensaje pendiente de confirmar en la instancia de proceso.
• Custom Activity. Actividad que referencia a un proceso con el objetivo de ocultar los detalles de implementación.
• Engine Command. Recuperar información estadística de procesos, instancias de procesos y actividades. Posibilita tareas de mantenimiento del engine: supender, resumir y parar.
• External Command. Ejecución de comandos de sistema operativo.
• Generate Error. Genera un error predefinido que puede ser elevado y capturado para su gestión.
• Get Shared Variable. Obtiene el valor de una variable compartida entre varias instancias de procesos.
• Inspector. Escribe la salida de actividades y variables de proceso a fichero o a la salida estándar stdout.
• JNDI configuration. Especificación de recurso de conexión JNDI.
• Job Shared Variable. Definición de variable cuyo valor es compartido por todas las instancias resultantes de una llamada a subproceso, es decir, el alcance se limita al Job.
• Label. Documentación y comentarios en la definición de un proceso.
• Lock Object. Bloqueo sobre un objeto compartido para asegurar que sólo una instancia accede al mismo tiempo.
• Mapper. Añade una variable de proceso a la definición del proceso.
• Notify. Envío de información desde una instancia de proceso a otra instancia de proceso que contiene una actividad “Wait” o un lanzador de proceso “Recibe Notification”.
• Notify Configuration. Definición del esquema de datos utilizado para el envío de información entre instancias de proceso con las actividades “Wait”, “Notify” y “Recibe Notification”.
• Null. Actividad sin acción. Se utiliza para unir múltiples flujos del proceso.
• On Event Time Out. Arranca una instancia de proceso cuando se produce un timeout en una actividad “Wait”.
• On Notification Timeout. Arranca una instancia de proceso cuando se produce un timeout en una actividad “Notify” con el objetivo de almacenar la información de notificación.
• On Shutdown. Arranca una instancia de proceso cuando se hace shutdown del engine. La instancia se ejecuta después de terminar el resto de instancias en ejecución y antes de para el motor.
• On Startup. Arranca una instancia de proceso cuando se levanta el motor y antes de que se procese ningún evento.
• Receive Notification. Arranca una instancia de proceso cuando se recibe una notificación procedente de una actividad “Notify”.
• Rethrow. Lanza la excepción capturada con la actividad “Catch” para propagarla al siguiente nivel.
• Set Shared Variable. Asignar valor a una variable compartida.
• Shared Variable. Creación de variable compartida por todas las instancias de un proceso.
• Sleep. Suspensión de la ejecución del proceso durante un tiempo determinado.
• Timer. Arranca una instancia de proceso en un tiempo especificado.
• Wait. Suspensión de la ejecución de un proceso en espera una notificación enviada desde una actividad de “Notify”.
• Log. Escritura de un mensaje en el log del engine.
En los siguientes puntos se tratan aspectos importantes que involucran a las actividades generales. Cada uno de estos apartados puede tratar varias actividades generales.
La descripción detallada de cada una de las Actividades Generales se encuentra en la documentación oficial de TIBCO: tib_bw_palette_reference.pdf.
martes, 30 de abril de 2013
miércoles, 17 de abril de 2013
TIBCO BusinessWorks. Ejemplo 1: Variables Globales y Fichero de Propiedades
Desde un proceso BW X llama n veces a otro proceso BW Y. El número de veces que se llama al proceso Y se obtiene de la variable global n cuyo valor se fija en el fichero de propiedades.
Pasos:
1. Creación del proyecto BW
a. Crear una carpeta “VariableGlobal_FichProp”
b. Arrancar TIBCO Designer
i. Crear nuevo proyecto BW
ii. Seleccionar la carpeta que hemos creado
iii. Pulsar “OK”

b. Añadir la variable de grupo “ejemplo1” pulsando en el icono
c. y dentro de ella la variable “n” pulsando en el icono . Introducir el texto “_PROPFILE_” como valor de la variable. Este valor es indicativo para el desarrollador y el administrador de que el valor de la variable se obtiene de un fichero de propiedades.
Pulsar OK
d. En la carpeta “VariablesGlobales_FicherosPropiedades” añadimos una nueva definición de proceso. Le asignamos el nombre “Proceso_VariableGlobal_FichProp” y pulsamos “Apply”.
e. Hacemos doble clic sobre la definición de proceso
f. Crear una variable de proceso “i”.
a. Pulsar en la pestaña “Process Variables”
b. Asignar el valor “i” al campo “name”
c. Añadir el elemento “i” de tipo “integer”
d. Aplicar y salvar
g. Añadir a la definición del proceso una tarea de “WriteToLog” de la paleta “General Activities”
Con esta tarea mostraremos por consola las iteraciones realizadas.
a. Configurar la entrada a la tareas “Log”. Al campo “message” le añadimos el valor “concat(“i: “,$i/i)”. Esto lo podemos realizar con el editor de fórmula pulsando en el icono
h. Asignamos un valor inicial a la variable “i” con la tarea “Assing” de la paleta de Actividades Generales.
a. Crear la actividad “Assing” (General Activities Assing)
b. Seleccionar i en el combo de “Process Variable to Set”
c. En la pestaña de “input” asignamos el valor 0 a la variable “i”
d. Pulsamos “Apply”
i. Creamos un grupo para la tarea “Log”. Seleccionar la tarea “Log” y pulsa en el icono de creación de grupo
a. Pulsar en el icono del grupo y seleccionar “Repeat-Unti-True”.
b. Completar el campo “Index Name” con el valor “j”
c. Completar el campo de “condition” con “$i/i=$_globalVariables/pfx:GlobalVariables/ejemplo1/n”. Esta acción se realiza con el editor de formula.
d. Pulsar “Apply”
j. Configurar la tarea de log como se muestra en la siguiente figura.
k. Añadimos una nueva actividad de asignación al grupo para sumar 1 a la variable i
a. En la pestaña “Input” sumamos 1 a variable de proceso i. Asignar el valor $i+1.
l. Crear el fichero de propiedades “bwprop-VariableGlobal_FichProp-DEV.prop” en “<dir_home>/CursoTIBCO/configuracion”. Para realizar esta operación nos podemos utilizar el navegador de archivos
a. Abrir el fichero creado con el editor de texto y añadir el siguiente texto:
#
# Fichero de propiedades Formacion Avanzada BW
#
# Configuracion Ejemplo 1
#
##########################################################
# Variables
##########################################################
tibco.clientVar.ejemplo1/n=10
b. Salvar
m. Para probar el ejemplo utilizamos la pestaña de Test de TIBCO Designer.
a. Pulsamos el icono de “Star testing”
b. Seleccionamos el proceso “Proceso_VariableGlobal_FichProp”
c. Para que el motor de BW que se arranca en el modo Test lea el fichero de propiedades que hemos generado pulsamos en “Advanced” y añadimos la línea “-p <dir_home>/CursoTIBCO/configuracion/bwprop-variableGlobal_FichProp-DEV.prop” en el campo “Test Engine User Args”.
d. Pulsar “Load Selected”
e. Abrir la consola: Window Show Console
f. La consola muestra al final del log:
2010 Jun 15 17:14:37:890 GMT +2 BW.FormacionAvanzadaBW Info [BW-Core] BWENGINE-300002 Engine FormacionAvanzadaBW started
2010 Jun 15 17:14:39:334 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 0
2010 Jun 15 17:14:40:017 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 1
2010 Jun 15 17:14:40:702 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 2
2010 Jun 15 17:14:41:468 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 3
2010 Jun 15 17:14:42:143 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 4
2010 Jun 15 17:14:42:866 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 5
2010 Jun 15 17:14:43:544 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 6
2010 Jun 15 17:14:44:228 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 7
2010 Jun 15 17:14:44:988 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 8
2010 Jun 15 17:14:45:663 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 9
Pasos:
1. Creación del proyecto BW
a. Crear una carpeta “VariableGlobal_FichProp”
b. Arrancar TIBCO Designer
i. Crear nuevo proyecto BW
ii. Seleccionar la carpeta que hemos creado
iii. Pulsar “OK”
2. Generar la variable global “n” cuyo valor se obtendrá del fichero de propiedades:
a. Seleccionar la pestaña “Global Variables” en TIBCO Designer y abrir el editor pulsando en el icono:
a. Seleccionar la pestaña “Global Variables” en TIBCO Designer y abrir el editor pulsando en el icono:

b. Añadir la variable de grupo “ejemplo1” pulsando en el icono
c. y dentro de ella la variable “n” pulsando en el icono . Introducir el texto “_PROPFILE_” como valor de la variable. Este valor es indicativo para el desarrollador y el administrador de que el valor de la variable se obtiene de un fichero de propiedades.
Pulsar OK
d. En la carpeta “VariablesGlobales_FicherosPropiedades” añadimos una nueva definición de proceso. Le asignamos el nombre “Proceso_VariableGlobal_FichProp” y pulsamos “Apply”.
e. Hacemos doble clic sobre la definición de proceso
f. Crear una variable de proceso “i”.
a. Pulsar en la pestaña “Process Variables”
b. Asignar el valor “i” al campo “name”
c. Añadir el elemento “i” de tipo “integer”
d. Aplicar y salvar
g. Añadir a la definición del proceso una tarea de “WriteToLog” de la paleta “General Activities”
Con esta tarea mostraremos por consola las iteraciones realizadas.
a. Configurar la entrada a la tareas “Log”. Al campo “message” le añadimos el valor “concat(“i: “,$i/i)”. Esto lo podemos realizar con el editor de fórmula pulsando en el icono
h. Asignamos un valor inicial a la variable “i” con la tarea “Assing” de la paleta de Actividades Generales.
a. Crear la actividad “Assing” (General Activities Assing)
b. Seleccionar i en el combo de “Process Variable to Set”
c. En la pestaña de “input” asignamos el valor 0 a la variable “i”
d. Pulsamos “Apply”
i. Creamos un grupo para la tarea “Log”. Seleccionar la tarea “Log” y pulsa en el icono de creación de grupo
a. Pulsar en el icono del grupo y seleccionar “Repeat-Unti-True”.
b. Completar el campo “Index Name” con el valor “j”
c. Completar el campo de “condition” con “$i/i=$_globalVariables/pfx:GlobalVariables/ejemplo1/n”. Esta acción se realiza con el editor de formula.
d. Pulsar “Apply”
j. Configurar la tarea de log como se muestra en la siguiente figura.
k. Añadimos una nueva actividad de asignación al grupo para sumar 1 a la variable i
a. En la pestaña “Input” sumamos 1 a variable de proceso i. Asignar el valor $i+1.
l. Crear el fichero de propiedades “bwprop-VariableGlobal_FichProp-DEV.prop” en “<dir_home>/CursoTIBCO/configuracion”. Para realizar esta operación nos podemos utilizar el navegador de archivos
a. Abrir el fichero creado con el editor de texto y añadir el siguiente texto:
#
# Fichero de propiedades Formacion Avanzada BW
#
# Configuracion Ejemplo 1
#
##########################################################
# Variables
##########################################################
tibco.clientVar.ejemplo1/n=10
b. Salvar
m. Para probar el ejemplo utilizamos la pestaña de Test de TIBCO Designer.
a. Pulsamos el icono de “Star testing”
b. Seleccionamos el proceso “Proceso_VariableGlobal_FichProp”
c. Para que el motor de BW que se arranca en el modo Test lea el fichero de propiedades que hemos generado pulsamos en “Advanced” y añadimos la línea “-p <dir_home>/CursoTIBCO/configuracion/bwprop-variableGlobal_FichProp-DEV.prop” en el campo “Test Engine User Args”.
d. Pulsar “Load Selected”
e. Abrir la consola: Window Show Console
f. La consola muestra al final del log:
2010 Jun 15 17:14:37:890 GMT +2 BW.FormacionAvanzadaBW Info [BW-Core] BWENGINE-300002 Engine FormacionAvanzadaBW started
2010 Jun 15 17:14:39:334 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 0
2010 Jun 15 17:14:40:017 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 1
2010 Jun 15 17:14:40:702 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 2
2010 Jun 15 17:14:41:468 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 3
2010 Jun 15 17:14:42:143 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 4
2010 Jun 15 17:14:42:866 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 5
2010 Jun 15 17:14:43:544 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 6
2010 Jun 15 17:14:44:228 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 7
2010 Jun 15 17:14:44:988 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 8
2010 Jun 15 17:14:45:663 GMT +2 BW.FormacionAvanzadaBW User [BW-User] - Job-1 [Ejemlos/VariableGlobal_FichProp/Proceso_VariableGlobal_FichProp.process/Group/Log]: i: 9
viernes, 12 de abril de 2013
TIBCO BusinessWorks. Variables Globales y Ficheros de Propiedades
3.1 Variables globales
3.1.1 Descripción
Las variables globales proporcionan una herramienta sencilla de establecer valores por defecto para su uso en todo el proyecto BW. Estas variables se definen en la pestaña “Global Variables” de la vista de proyecto en TIBCO Designer.Cuando se quieran utilizar para leer o escribir en tiempo de ejecución como recurso hay que utilizarlas encerradas con “%%” (sin comillas) a ambos lados.
Al crear una variable global se pueden especificar los siguientes atributos:
• Nombre: Proporcionar un nombre para la variable.
• Valor: Proporciona un valor por defecto de la variable.
• Despliegue: Hace visible la variable desde el Administrador TIBCO.
• Servicio: Indica que la variable debería incluirse cuando la opción “Include all service level global variables” está marcada cuando se crea el archivo “*.ear”. Esta opción es utilizada para los adaptadores de archivo de TIBCO.
• Tipo: Selecciona el tipo de variable, String, Integer, Boolean o contraseña.
• Restricción: Proporciona a las cadenas String y a los Integer un rango permitido.
• Descripción: Proporciona una descripción de la variable.
El contenido de las variables globales puede ser modificado antes de desplegar la aplicación desde el Administrador TIBCO.
También se puede especificar los valores de las variables globales de una aplicación que se ejecuta en un motor de procesos desde la línea de comandos. Para ello hay que utilizar el siguiente parámetro en el arranque del motor BW:
-tibco.clientVar.<variablePathAndName> <valor>
• variablePathAndName: es el nombre de la variable (incluyendo la ruta de acceso a la variable si es que sitúa en una carpeta o subcarpeta).
• valor: es el valor que se desea establecer en la variable.
Por ejemplo, si usted tiene una variable global item1 nombre figura en una carpeta con el nombre MYGROUP y desea establecer su valor a 500, añadir la siguiente línea al fichero de propiedades, y cuyo valor será cargado en el inicio el proceso motor:
-tibco.clientVar.myGroup/item1 500
3.1.2 Situaciones de uso
Se contempla 2 usos en este apartado:• Configuración de recursos (conexiones HTTP, conexiones JMS, etc.)
• Valores de entrada para tareas de BW.
Las variables globales son valores de solo lectura que se inicializan en el arranque de BW engine. Los valores de las variables globales pueden cambiar o no cambiar en los diferentes entornos donde se despliegue la aplicación a través de TIBCO Administrator, desde un parámetro en el arranque del motor de BW o desde fichero de propiedades.
Las variables globales se usan para referenciar los valores de:
• Configuración de recursos. Ej: conexiones ftp, URL en tareas SOAP para invocación de servicios, etc.
• Input Bindings. Campos de entrada en las tareas que forman un proceso BW.
Las variables globales facilitan el mantenimiento del código de nuestra aplicación, pero el objetivo final es facilitar los cambios de configuración y los cambios de entorno de la aplicación. Por medio de variables globales un cambio de configuración o un cambio de entorno no requieren de una modificación del código, empaquetado de la aplicación y despliegue. Sólo es necesario modificar el valor de las variables globales y parar y arrancar de nuevo el motor de BW.
Las variables globales se suelen utilizar en las siguientes situaciones:
• Fijar la configuración del entorno
• Configuración de Tunning o rendimiento
• Configuración de recursos o servicios
• Configuración de constantes referentes a sistemas externos
3.1.3 Modificación de las variables globales
Las variables globales definidas en un proyecto se pueden modificar de las siguientes formas:1. Por medio de TIBCO Business Works Designer en tiempo de diseño.
2. Por medio de TIBCO Administrator en tiempo de despliegue.
3. Por medio de ficheros de propiedades en tiempo de ejecución parando y levantado el motor de BW.
4. Línea de comando parado y levantando el motor de BW.
Tener en consideración que a una misma variable global se le puede aplicar un valor de las cuatro formas simultáneamente. En este caso, el valor que prevalece es el de la línea de comandos, seguido del valor en el fichero de propiedades, luego el indicado en TIBCO Administrator y por último es fijado con TIBCO Designer.
En este documento se describe y detalla la opción 3 como parte de las Best Practices de Business Works. El uso de los ficheros de propiedades limita el uso de TIBCO Administrator como herramienta de modificación de variables globales.
3.1.3 Uso de ficheros de propiedades en TIBCO BusinessWorks
Es recomendable utilizar un fichero de propiedades por proyecto para organizar las variables globales, y por tanto fijar una convención de nombres para nombrar los ficheros. Se recomienda la siguiente convención:bwprop-<project name>-<environment>.prop
Cuando el valor de una variable global se fija mediante fichero de propiedades se recomienda darle el valor “_PROPFILE_” en tiempo de diseño mediante TIBCO Designer para indicar este hecho y evitar usos erróneos.
Los ficheros de propiedades se referencian en el fichro .TRA del proyecto desplegado con TIBCO Administrator. En el fichero.tra se modifica de la siguiente forma:
tibco.env.APP_ARGS=-p Bwprop-<nombre proyecto>-<entorno>.prop -p Bwprop-<nombre proyecto>-<entorno>-config.prop
Los ficheros .tra de los diferentes proyectos se encuentran en el dominio donde han sido desplegados.
/tibco/tra/domain/<nombre_dominio_tibco>/application/<nombre_despliegue>
ADVERTENCIA: El redespliegue del proyecto regenera el fichero .tra y por tanto se pierden las modificaciones realizadas que indican la utilización de los ficheros de propiedades.
Suscribirse a:
Entradas (Atom)