Continuando con la serie de post acerca de WF, en esta ocasión vamos a trabajar utilizando clases como parámetros. Esto desde el punto de vista arquitectura tiene mucho sentido porque nos va a permitir utilizar nuestras entidades de negocio como parámetros de los workflows que al final terminarán invocando nuestros componentes de negocio.
La clase Persona
Para este ejemplo vamos a utilizar una clase llamada persona, la cual se muestra a continuación:
El Workflow
Vamos a crear un nuevo Workflow en donde vamos a definir si una persona puede hacer el examen para tener permiso de conducir – licencia. Para esto vamos a recibir como parámetro una instancia de una persona y vamos a verificar la Edad de la persona, si la persona es mayor de 18 años entonces puede tomar el examen lo cual será indicado retornando en una variable booleana el valor verdadero, en caso contrario vamos a retornar falso.
Para agregar un workflow a la solución actual iniciamos agregando una nueva actividad al proyecto – recordemos que los workflows en sí son actividades que contienen otras actividades.
En el workflow recién creado vamos a crear un parámetro de entrada llamado pPersona del tipo Persona. Para tener acceso a este tipo desde el UI de parámetros de workflow, primero tenemos que compilar la aplicación, seguidamente procedemos a definir la variable y a asignarle el tipo vía la opción “Browse for Types”.
En la pantalla de selección de tipos buscamos la recién definida clase Persona.
Ahora procedemos con la definición del parámetro de retorno. En este caso haremos una variable llamada pRespuesta de tipo boolean.
Ahora procedemos a crear el workflow. Este decidirá en base a la edad de la persona si esta puede o no hacer el examen de manejo. El workflow se puede ver a continuación.
Como se ve en la ilustración anterior, usamos una figura “if” para determinar la edad de la persona y si esta es mayor de 17 años, entonces le asignamos con una figura “Assign” verdadero al resultado, en caso contrario le asignamos falso.
Invocando el workflow
Para invocar el workflow, debemos de crear una instancia de la clase Persona y enviarla vía el diccionario de parámetros al workflow. Además, debemos de recibir la respuesta vía el diccionario de respuesta del workflow.
Al ejecutarlo el resultado es el siguiente:
No hay comentarios:
Publicar un comentario