10.20.2011

Aprendiendo WF parte 5: Clases como Parámetros

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:

image

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.

image

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”.

image

En la pantalla de selección de tipos buscamos la recién definida clase Persona.

image

Ahora procedemos con la definición del parámetro de retorno. En este caso haremos una variable llamada pRespuesta de tipo boolean.

image

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.

image

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.

image

Al ejecutarlo el resultado es el siguiente:

image

Etiquetas de Technorati:

No hay comentarios: