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:
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
Seguidamente procedemos a agregar una secuencia y luego de esto a agregar la figura que nos va a permitir invocar el método BuscarPares.
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:
Para inicializar esta variable – para crear la instancia – procedemos con una figura del tipo Assign tal y como se ve a continuación:
Ahora procedemos a configurar la figura de invocar método con la variable recién creada e inicializada.
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.
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.
Como vemos en la siguiente figura del workflow completo, este ya no tiene errores.
Ahora solo nos queda probar el workflow, para esto vamos a escribir el siguiente código en el método Main.
El resultado al ejecutar el código anterior es el siguiente:
No hay comentarios:
Publicar un comentario