Inicio de un proceso desde un objeto GeneXus, usando la API de Workflow

Documentos relacionados
Cómo enviar un mail automático y ejecución del acceso a la API programado previamente

Tareas multi-instanciadas y mapeo de datos relevantes

Prototipado, instancias e historia de un proceso

Trabajando con documentos

Modificación de dato relevante, evento timer y calendarios

Se ejecuta el diagrama de procesos por primera vez

Programando recordatorios y fin del proceso de reserva de pasajes

Definición de tareas concurrentes, detección e identificación de errores

Relaciones entre entidades de la realidad

Transacción de 2 niveles usada como Business Component y manejo de errores.

Tipos de datos estructurados

Diseñando la primera transacción

Actualización de la Base de Datos - For each, delete, new

Administrando las bases de conocimiento (GXserver)

Diseñando más transacciones

Subprocesos transaccionales

GMI. Bajar y Recuperar Currículums de Bodega

Desarrollo de Proyectos

Dos formas de devolver una colección con un Data Provider

Momentos de disparo de reglas en transacciones

Una vez completo este paso, es necesario verificar que haya paquetes disponibles para la cantidad de personas que deseen realizar el viaje.

Testeando las aplicaciones (GXtest)

Creando una aplicación móvil con GeneXus para trabajar con los Materiales del SAP ERP parte 4

07 Variables. 7.1 Variables globales Definición

Aplicación del GAM. Una vez autenticado el usuario podrá comenzar a utilizar la aplicación.

UNIDAD 4. MODIFICAR TABLAS DE DATOS

Relaciones entre entidades de la realidad

GUIA DE USUARIO PARA COORDINADORES INSTITUCIONALES DEL PROGRAMA ESCALA DE ESTUDIANTES DE GRADO.

INSTRUCTIVO PARA ENVIOS DE TRABAJOS

Al pie de la solapa Principal se encuentra la opción de transformar toda la información contenida en el sistema en un CV en formato *.pdf o *.

Importación de Datos

Reporting (objeto Query)

Overview GeneXus - Demo: 2.Cómo obtener el ejecutable de la KB y declaración de algunas reglas del negocio.

Opciones de animación y configuración

Manual Word Plantillas y Formularios

Manual Operacional AGENDA - SIDRA

Crear un blog en Blogger

Crear Tareas. Crear Tareas. 1 de 8. En este tutorial vamos a revisar el comportamiento de la herramienta "Tarea".

Momentos de disparo de reglas en transacciones

Fórmulas Globales. Page1. Video filmado con GeneXus X Evolution 2

Tutorial Instalación Debían.

Uso de RSS en la portada de una web

UNIDAD 2: Bases de Datos en Visual Basic

Programa de Gestión de Bibliotecas Escolares. Importación de fondos de Abies2 a AbiesWeb

Para realizar los procesos de cierre y apertura del ejercicio es conveniente disponer de la última versión de la aplicación es decir la V

Muchos manejadores de bases de datos (DBMSs) cuentan con sistemas de recuperación ante fallos, que permiten dejar la base de datos en estado

Excel 2010 Introducción al entorno de trabajo

COTIZADOR MANUAL DEL USUARIO INTERNO. w w w. n o b l e s e g u r o s. c o m Página 1

SISTEMA DE CONTROL INTERNO DE GESTION PRESIDENCIAL

Gestiolan ALBARANES Y FACTURAS

Registro de Proveedores v2

MANUAL DE USUARIO PORTAL WEB - LIRQUEN ONLINE DEPÓSITO LIRQUEN

Diseñando más transacciones

Unidades Organizacionales

Taller de TeamViewer. Manual De TeamViewer

Extensión K2B proyectos para Smart Devices

AMORTIZACIONES SERVINET SISTEMAS Y COMUNICACIÓN S.L

Programación Delphi con Bases de datos

Jazz Despachos Lotes e Importaciones

Actividad Obtener Libros. Manual básico para el uso de la Actividad Obtener Libros

INSTRUCTIVO SIGEVA-UNL MODULO INFORME DE PROYECTOS. CONVOCATORIA: INFORME ACTIVIDADES Enero/15- Abril/16 CAI+D

Sistema de Presentación y Gestión de Proyectos Instructivo para la carga de Proyectos.

Generador de actividades

SISTEMA DE AMBIENTES DE DESPACHO

Integridad Transaccional

Teléfono:

MANUAL DE PROCEDIMIENTO REGISTRO ÚNICO DEL ESTUDIANTE

MANUAL APP ZERYA MODELOS PREDICTIVOS V1.X

Grandes Compras. Mayo 2013

Sistema de Registro, Derivación y Monitoreo Chile Crece Contigo

TUTORIAL PARA ALUMNOS

1. Creamos un nuevo proyecto del tipo Aplicaciones de Windows Forms (Visual C#) en Visual Studio.

Inscripción Online Contenido

Empecemos con las definiciones para que nos quede claro a todos:

CENTRAL VIRTUAL IPLAN

Entorno de trabajo de Excel 2010

1.- CREACIÓN DE CONSULTAS.

FACTURAS ELECTRÓNICAS. Fiscalización

Gestión de Noticia Portal de Dirección de Postgrados Dirección de Tecnologías de Información, Universidad de Concepción.

Servicios Públicos. Manual de Usuarios Módulo Gastos. Proyecto Implementación UBA. Febrero 2011 Versión 2.0

SISTEMA DE BLOGS UNIVERSIDAD DE LEÓN

USER MANUAL VISUALIZADOR FINGERTEC TCMS V2

Guía básica para realizar gráficas de funciones utilizando una planilla de cálculo

INSTRUCTIVO SIGEVA-UNL MODULO INFORME DE PROYECTOS

Desarrollo de Proyectos

Sede Electrónica GUÍA RÁPIDA DE UN PROCEDIMIENTO TELEMÁTICO DE ESTELA

Para comenzar nos dirigiremos a la web:

Requisitos Previos de Instalación Conceptos básicos a manejar antes de avanzar con el curso.

La Herramienta Redmine para la Administración de Proyectos

Práctica 2 Animaciones

PERIODO 3 SOFTWARE MANEJADOR DE BASE DE DATOS CONCEPTOS INTERMEDIOS DE MICROSOFT ACCESS

COMO CREAR UNA RED LOCAL ENTRE EQUIPOS CON WINDOWS

Manual de Usuario para cambio de contraseña de Alumnos y Empleados ITSON. Solicitud de Cambio Password

Manual de Usuarios SOFTWARE RAZUNA - DAM. Grupo de Innovación y Apropiación de Tecnologías de la Información Archivística CKAN

ADMINISTRACIÓN DEL SISTEMA DE DESPACHOS

Ingreso al Sistema STEP (Login o Validación de Usuario)

GUÍA RÁPIDA SUMMON COMENZAR

GPS Colaboración BAJAR Y RECUPERAR CURRÍCULUM DE BODEGA

Sistema de Certificado de Origen Digital - SCOD

Diagramas de secuencia

Transcripción:

Inicio de un proceso desde un objeto GeneXus, usando la API de Workflow La agencia de viajes decidió modificar su proceso de reserva de pasajes e incorporar algunas funcionalidades nuevas. En primer lugar, solicitó que sea posible que un cliente de la agencia pueda ingresar su propia reserva a través del sitio web. El cliente deberá estar logueado al sitio y proveer los datos de la reserva (fecha, aeropuerto de origen, aeropuerto de destino, cantidad de personas, etc.), con lo cual el sistema creará una reserva, iniciará el proceso FlightTicketReservation y marcará la tarea TicketReservation como completada. Como el pasajero ya es cliente de la empresa, una vez cumplida la tarea TicketReservation, la siguiente tarea pendiente de ejecución es la primera tarea del subproceso ValidateReservation, ContactAirlines, que es a su vez una tarea multi-instanciada. El sistema además deberá avisarle por mail a cada una de las personas que pueden contactar aerolíneas, que las instancias de la tarea ContactAirlines están disponibles para ser ejecutadas. Y por último, sustituir el tipo de tarea que notificaba al cliente de que la reserva fue autorizada, de forma de que el aviso sea en persona. Comencemos por el ingreso de la reserva por parte del cliente, en el sitio web. Para eso utilizaremos un webpanel llamado TravelAgency. Este web panel tiene variables en pantalla mediante las cuales el usuario ingresará los datos de la reserva y un botón de confirmar. Page1

Por razones de simplicidad para la demo, asumiremos que el cliente que ingresa es el cliente 1 y que ya está logueado, por lo cual no incluiremos los controles de login. Si vamos al evento Start, veremos el código para simular esto. Al presionar el botón confirmar, se ejecuta el evento Enter, el cual realiza varias tareas. En primer lugar se invoca al método NewReservation para crear una reserva en la base de datos. Luego, utilizando Tipos de datos de workflow, se inicia el proceso FlightTicketReservation y se marca la tarea TicketReservation como completada. Estos Tipos de Datos, que comienzan con el prefijo Workflow, son tipos de datos GeneXus y permiten que la aplicación pueda interactuar con el motor de Workflow. Para poder usar un tipo de datos Workflow e interactuar con la API del motor, se debe definir primero una variable con ese tipo de datos. Luego, con la ayuda que nos provee la información contextual, podemos elegir el método o propiedad, que queremos usar. Page2

Los tipos de datos Workflow están organizados en una jerarquía de clases. La clase de más jerarquía es la clase Server, de la cual dependen 3 clases que son Process Definition, la cual nos permite acceder a los componentes de un diagrama de procesos, Process Instance, que nos permite acceder a una instancia de un proceso en ejecución y Organization Model, que nos permite acceder a la información de la estructura organizacional de la empresa, como por ejemplo roles y usuarios. La clase Server es el punto de entrada en la jerarquía de tipos y sus métodos nos permiten acceder a cualquier tipo de datos workflow. Los tipos de datos más usados son los siguientes: Page3

Mediante WorkflowProcessDefinition, podemos acceder a varias propiedades del diagrama, como nombre, versión, tareas que lo incluyen (a las que llamamos actividades) y también es posible mediante el método CreateInstance, crear una instancia en ejecución del proceso, basada en dicha definición. Utilizando WorkflowProcessInstance podemos conocer la definición del proceso en la cual se basa la instancia, el asunto de que se trata la instancia, la colección de los workitems que forman parte de la instancia y a través del método GetApplicationByName podemos recuperar un dato relevante a partir de su nombre. La clase WorkflowWorkItem nos permite conocer el trabajo a ser realizado por un participante en el contexto de una actividad, dentro de la instancia de proceso. Su propiedad ProcessInstance nos da información de la instancia de proceso al cual pertenece el workitem. La propiedad Activity nos devuelve la actividad que generó el workitem. El método Assign nos permite asignar un workitem a un usuario determinado y el método Complete permite dar por finalizada la ejecución del workitem. Page4

El tipo de datos WorkflowContext nos da información de contexto en la ejecución de una aplicación asociada a una actividad. Este contexto se instancia automáticamente si la aplicación asociada a la actividad (es decir la tarea) es un objeto GeneXus, que forma parte de la misma KB donde se encuentra el diagrama de proceso. Esta instanciación automática del contexto, nos permite conocer los valores de la definición del proceso, la instancia del proceso y del workitem asociado a la actividad. Por último el tipo de datos WorkflowApplicationData es el tipo de datos que usamos cuando queremos trabajar con datos relevantes, por ejemplo, cuando almacenamos un dato relevante que obtenemos a través del método GetApplicationDataByName. Page5

Volviendo al evento del webpanel que invoca al proceso FlightTicketReservation, vemos que tenemos definida una variable &WorkflowServer del tipo WorkflowServer. Como práctica, utilizamos siempre nombres de variables que coincidan con los tipos de datos Workflow, de forma que nos resulte más sencilla su identificación. La primera operación que realizamos con el tipo de datos WorkflowServer es conectarnos al motor de workflow, utilizando el usuario y la contraseña del administrador. Luego obtenemos la definición del proceso FlightTicketReservation a partir de su nombre y lo guardamos en una variable del tipo WorkflowProcessDefinition. Una vez que tenemos la definición, creamos una instancia de dicho proceso, utilizando el método CreateInstance. Luego cambiamos su asunto, de forma de poder reconocer al proceso fácilmente, en la bandeja de entrada. A continuación cargamos el dato relevante ReservationId con el identificador de la reserva que creamos previamente y finalmente iniciamos la instancia con el método Start(). Las siguientes líneas de código sirven para marcar la tarea TicketReservation como completada. En primer lugar, a partir de la definición del proceso obtenemos la actividad TicketReservation y con esa actividad obtenemos el workitem correspondiente a la tarea en ejecución en el proceso. Luego marcamos el workitem (es decir la tarea) como completado. Notemos que luego del método Complete(), hay un Commit. Los cambios realizados utilizando los tipos de datos de workflow están comprendidos dentro de la Unidad de Trabajo Lógica de la aplicación. Sin embargo, las operaciones de workflow no hacen Commit, por lo que debemos asegurarnos de definir bien la UTL en la aplicación y hacer el Commit al final. En este caso, las operaciones de workflow las hicimos en un webpanel, por lo que es necesario agregar el Commit al finalizar las mismas. Estos tipos de datos workflow que vimos es un subconjunto de todos los disponibles, por lo que podremos realizar muchas tareas por código, a través de la API del motor de workflow. Page6

Podrá encontrar más información sobre este tema en el siguiente link. Page7