12.10.2011

Aprendiendo WF parte 8 – Invocando métodos de otras clases en WF

Quizás la funcionalidad más común a la hora de trabajar con WF en una arquitectura n-layer sea invocar los métodos de los componentes de lógica de negocios. En este post vamos a ver como invocar un método que reside en otro componente.

El método a invocar

En primera instancia vamos a crear un método que recibe una colección de números y me devuelve los números pares. Este método estará en una clase aparte que se llamará MathHelper. El código de esta clase se puede ver en la siguiente figura:

image

El workflow que invoca el método BuscarPares

Ahora vamos a crear un workflow que va a requerir invocar el método BuscarPares de la clase MathHelper recién mostrada. Este workflow simplemente recibe la lista de los números enteros, los procesa – a través de la clase MathHelper – y retorna la lista solamente conteniendo números pares.

En el workflow creado por la aplicación de consola – Workflow Application – procedemos a crear dos argumentos:

  • Lista de entrada: pListaEntrada
  • Lista de Salida: pListaNumerosPares

image

Seguidamente procedemos a agregar una secuencia y luego de esto a agregar la figura que nos va a permitir invocar el método BuscarPares.

image

Como vemos en la figura anterior, nos falta configurar la figura InvokeMethod la cual nos va a permitir invocar el método BuscarPares en la clase MathHelper.

En este caso, tenemos tres parámetros por completar de manera visual los cuales tienen el siguiente significado:

  • TargetType: Este es el tipo de la clase que se va a utilizar en el caso de que se requiera invocar un método estático.
  • TargetObject: Este es el tipo de la clase que se va a utilizar en el caso de que se requiera invocar un método de instancia.
  • MethodName: El nombre del método a invocar.

En nuestro caso, como vamos a trabajar con un método de instancia tenemos que completar los campos TargetObject y MethodName.

Para el caso del targetObject vamos a tener que declarar una variable del tipo MathHelper dentro del workflow e instanciarla.

La creación de la variable se hace seleccionando la secuencia lanzada al workflow y digitando la variable en la parte inferior del workflow. La variable es la siguiente:

image

Para inicializar esta variable – para crear la instancia – procedemos con una figura del tipo Assign tal y como se ve a continuación:

image

Ahora procedemos a  configurar la figura de invocar método con la variable recién creada e inicializada.

image

Todavía nos falta configurar los parámetros de entrada y el retorno del método que vamos a invocar, para esto vamos a las propiedades de la figura InvokeMethod y configuramos ambos ítems. Primero establecemos que el retorno de la función será asignado a la lista pListaNumerosPares.

image

El siguiente paso es configurar los parámetros que debe recibir el método, la lista de los números a procesar. Para esto procedemos a seleccionar la propiedad “Parameters” y le damos click en la “elipsis” –> “…”. En esta pantalla procedemos a configurar el parámetro de envío.

image

Como vemos en la siguiente figura del workflow completo, este ya no tiene errores.

image

Ahora solo nos queda probar el workflow, para esto vamos a escribir el siguiente código en el método Main.

image

El resultado al ejecutar el código anterior es el siguiente:

image

Etiquetas de Technorati:

No hay comentarios: