Procedimiento para crear un servicio de flujo de trabajo con actividades de mensajería

En este tema, se describe cómo crear un servicio de flujo de trabajo simple mediante actividades de mensajería. Este tema se centra en los sistemas de creación de un servicio de flujo de trabajo compuesto solo por actividades de mensajería. En un servicio real, el flujo de trabajo contiene muchas otras actividades. El servicio implementa una operación denominada Eco, que toma una cadena y la devuelve al autor de la llamada. Este tema es el primero en una serie de dos temas. El tema siguiente, Cómo obtener acceso a un servicio desde una aplicación de flujo de trabajo, describe cómo crear una aplicación de flujo de trabajo que pueda llamar al servicio creado en este tema.

Para crear un proyecto de servicio de flujo de trabajo

  1. Inicie Visual Studio 2012.

  2. Haga clic en el menú Archivo, seleccione Nuevo y, a continuación, Proyecto para mostrar el cuadro de diálogo Nuevo proyecto. Seleccione Flujo de trabajo en la lista de plantillas instaladas y Aplicación de servicio de flujo de trabajo WCF en la lista de tipos de proyecto. Asigne al proyecto el nombre MyWFService y use la ubicación predeterminada, tal y como se muestra en la siguiente ilustración.

    Haga clic en el botón Aceptar para descartar el cuadro de diálogo Nuevo proyecto.

  3. Cuando se crea el proyecto, el archivo Service1.xamlx se abre en el diseñador tal y como se muestra en la siguiente ilustración.

    Screenshot shows the open Service1.xamlx file in the designer.

    Haga clic con el botón derecho en la actividad etiquetada como Servicio secuencial y seleccione Eliminar.

Para implementar el servicio de flujo de trabajo

  1. Seleccione la pestaña Cuadro de herramientas en el lado izquierdo de la pantalla para mostrar el cuadro de herramientas y haga clic en el pin para mantener la ventana abierta. Expanda la sección Mensajería del cuadro de herramientas para mostrar las actividades de mensajería y las plantillas de actividades de mensajería, tal y como se muestra en la siguiente ilustración.

    Screenshot that shows the toolbox with Messaging section expanded.

  2. Arrastre y coloque una plantilla ReceiveAndSendReply en el diseñador de flujos de trabajo. De esta forma, se crea una actividad Sequence con una actividad Receive seguida de una actividad SendReply, tal y como se muestra en la siguiente ilustración.

    Screenshot that shows the ReceiveAndSendReply template.

    Tenga en cuenta que la propiedad SendReply de la actividad Request está establecida en Receive, el nombre de la actividad Receive a la que responde la actividad SendReply.

  3. En la actividad Receive, escriba Echo en el cuadro de texto etiquetado como OperationName. Esto define el nombre de la operación que implementa el servicio.

    Screenshot that shows where to specify the operation name.

  4. Con la actividad Receive seleccionada, abra la ventana de propiedades, si aún no lo está, mediante un clic en el menú Ver y seleccione la ventana Propiedades. En la ventana Propiedades, desplácese hacia abajo hasta que vea CanCreateInstance y haga clic en la casilla, tal y como se muestra en la siguiente ilustración. Esta opción permite que el host de servicio de flujo de trabajo cree una nueva instancia del servicio, si es necesario, cuando se recibe un mensaje.

    Screenshot that shows the CanCreateInstance property.

  5. Seleccione la actividad Sequence y haga clic en el botón Variables en la esquina inferior izquierda del diseñador. Esto muestra el editor de variables. Haga clic en el vínculo Crear variable para agregar una variable para almacenar la cadena enviada a la operación. Asigne a la variable el nombre msg y establezca el tipo de Variable como Cadena, tal y como se muestra en la siguiente ilustración.

    Screenshot that shows how to add a variable.

    Haga clic de nuevo en el botón Variables para cerrar el editor de variables.

  6. Haga clic en el vínculo Definir... en el cuadro de texto Contenido de la actividad Receive para mostrar el cuadro de diálogo Definición de contenido. Seleccione el botón de radio Parámetros, haga clic en el vínculo Agregar nuevo parámetro, escriba inMsg en el cuadro de texto del nombre, seleccione Cadena en el cuadro de lista desplegable Tipo y escriba msg en el cuadro de texto Asignar a, tal y como se muestra en la siguiente ilustración.

    Screenshot that shows adding Parameters content.

    Esto especifica que la actividad de recepción recibe el parámetro de cadena y que los datos se enlazan a la variable msg. Haga clic en Aceptar para cerrar el cuadro de diálogo Definición de contenido.

  7. Haga clic en el vínculo Definir... en el cuadro Contenido de la actividad SendReply para mostrar el cuadro de diálogo Definición de contenido. Seleccione el botón de radio Parámetros, haga clic en el vínculo Agregar nuevo parámetro, escriba outMsg en el cuadro de texto del nombre, seleccione Cadena en el cuadro de lista desplegable Tipo y msg en el cuadro de texto Valor, tal y como se muestra en la siguiente ilustración.

    Screenshot that shows how to add the outMsg parameter.

    Esto especifica que la actividad SendReply envía un mensaje o un tipo de contrato de mensaje y esos datos están enlazados a la variable msg. Dado que ésta es una actividad SendReply, esto significa que los datos de msg se usan para rellenar el mensaje que la actividad devuelve al cliente. Haga clic en Aceptar para cerrar el cuadro de diálogo Definición de contenido.

  8. Guarde y compile la solución con un clic en el menú Compilar y seleccionando Compilar solución.

Configuración del proyecto de servicio de flujo de trabajo

El servicio del flujo de trabajo ha finalizado. En esta sección, se explica cómo configurar la solución de servicio de flujo de trabajo para facilitar el hospedaje y la ejecución. Esta solución usa el servidor de desarrollo de ASP.NET para hospedar el servicio.

Para establecer opciones de inicio de proyecto

  1. En el Explorador de soluciones, haga clic con el botón derecho en MyWFService y seleccione Propiedades para mostrar el cuadro de diálogo Propiedades del proyecto.

  2. Seleccione la pestaña Web y seleccione Página específica en Acción de inicio. A continuación, escriba Service1.xamlx en el cuadro de texto, tal y como se muestra en la siguiente ilustración.

    Screenshot that shows the project properties dialog.

    Esto hospeda el servicio definido en Service1.xamlx en el servidor de desarrollo de ASP.NET.

  3. Pulse Ctrl+F5 para iniciar el servicio. El icono del servidor de desarrollo de ASP.NET se muestra en el lado inferior derecho del escritorio, tal y como se muestra en la siguiente imagen.

    Screenshot that shows the ASP.NET Developer Server icon.

    Además, el navegador muestra la página de ayuda del servicio WCF para el servicio.

    Screenshot that shows the WCF Service Help Page.

  4. Continúe con el tema Cómo obtener acceso a un servicio desde una aplicación de flujo de trabajo para crear un cliente de flujo de trabajo que llame a este servicio.

Consulte también