Proceso de aprobación de un documento

En el ejemplo DocumentApprovalProcess se muestra el uso de muchas características de Windows Workflow Foundation (WF) y Windows Communication Foundation (WCF). Juntas implementan un escenario de proceso de aprobación de un documento. Una aplicación cliente puede enviar documentos para su aprobación y aprobar documentos. Existe una aplicación de administrador de aprobaciones para facilitar las comunicaciones entre los clientes y aplicar las reglas del proceso de aprobación. El proceso de aprobación es un flujo de trabajo que puede ejecutar varios tipos de aprobación. Existen actividades para obtener una aprobación única, una aprobación de quórum (un porcentaje de un conjunto de aprobadores) y un proceso de aprobación compleja que consta de una aprobación de quórum y una aprobación única en una secuencia.

Detalles del ejemplo

El siguiente gráfico muestra el flujo de trabajo del proceso de aprobación de un documento:

A document approval process workflow

Desde la perspectiva del cliente, el proceso de aprobación funciona del siguiente modo:

  1. Un cliente realiza una suscripción para convertirse en usuario en el sistema del proceso de aprobación.

  2. Un cliente de WCF la envía a un servicio de WCF hospedado por la aplicación de administrador de aprobaciones.

  3. Se devuelve un Id. de usuario único al cliente. El cliente puede participar ahora en los procesos de aprobación.

  4. Una vez admitido, un cliente puede enviar un documento para su aprobación mediante un proceso de aprobación única, de quórum o compleja.

  5. Al hacer clic en un botón de la interfaz del cliente, se inicia una instancia de flujo de trabajo en un host de servicio de flujo de trabajo del cliente.

  6. El flujo de trabajo envía una solicitud de aprobación a la aplicación de administrador de aprobaciones.

  7. El administrador del flujo de trabajo inicia un flujo de trabajo por su parte para representar un proceso de aprobación.

  8. Una vez ejecutado el flujo de trabajo de aprobación del administrador, los resultados se devuelven al cliente.

  9. El cliente muestra los resultados.

  10. Un cliente puede recibir una solicitud de aprobación y responder a la solicitud en cualquier momento.

  11. Un servicio de WCF hospedado en el cliente puede recibir una solicitud de aprobación procedente de la aplicación de administración de aprobaciones.

  12. La información del documento se presenta en el cliente para revisión.

  13. El usuario puede aprobar o rechazar el documento.

  14. Se utiliza un cliente de WCF para devolver una respuesta de aprobación a la aplicación de administración de aprobaciones.

Desde el punto de vista de la aplicación de administración de aprobaciones, el proceso de aprobación funciona del siguiente modo:

  1. Un cliente solicita al sistema del proceso de aprobación participar.

  2. Un servicio de WCF en el administrador de aprobaciones recibe una solicitud para formar parte del sistema del proceso de aprobación.

  3. Se genera un identificador único para el cliente. La información sobre el usuario se almacena en una base de datos.

  4. El identificador único se envía al usuario.

  5. Se recibe una solicitud de aprobación. El administrador de aprobaciones ejecuta un proceso de aprobación.

  6. El administrador de aprobaciones recibe una solicitud de aprobación, lo que inicia un nuevo flujo de trabajo.

  7. Según el tipo de solicitud (simple, quórum o compleja), se ejecuta una actividad diferente.

  8. Las actividades Send y Receive con correlación se utilizan para enviar la solicitud de aprobación al cliente para su revisión y recibir la respuesta.

  9. El resultado del flujo de trabajo del proceso de aprobación se envía al cliente.

Utilizar el ejemplo

Para configurar la base de datos

  1. Desde un símbolo del sistema de Visual Studio abierto con privilegios de administrador, vaya a esta carpeta DocumentApprovalProcess y ejecute Setup.cmd.

Para configurar la aplicación

  1. Con Visual Studio, abra el archivo de solución DocumentApprovalProcess.sln.

  2. Para compilar la solución, presione Ctrl+MAYÚS+B.

  3. Para ejecutar la solución, inicie la aplicación de administración de aprobaciones haciendo clic con el botón derecho en el proyecto ApprovalManager en el Explorador de soluciones y, a continuación, en Depurar->Iniciar nueva instancia en el menú contextual.

    Espere a que el resultado del administrador le indique que está listo.

Para ejecutar el escenario de aprobación única

  1. Abra un símbolo del sistema con permisos de administrador.

  2. Navegue al directorio que contiene la solución.

  3. Navegue a la carpeta ApprovalClient\Bin\Debug y ejecute dos instancias de ApprovalClient.exe.

  4. Haga clic en detectar y espere a que se habilite el botón suscribir.

  5. Escriba un nombre de usuario y haga clic en suscribir. Para un cliente, use UserType1 y para el otro, escriba UserType2.

  6. En el cliente UserType1, seleccione el tipo de aprobación única en el menú desplegable y escriba un nombre de documento y su contenido. Haga clic en Aprobación de solicitud.

  7. En el cliente UserType2, aparecerá un documento a la espera de aprobación. Selecciónelo y presione aprobar o rechazar. Los resultados deberían mostrarse en el cliente UserType1.

Para ejecutar el escenario de aprobación de quórum

  1. Abra un símbolo del sistema con permisos de administrador.

  2. Navegue al directorio que contiene la solución.

  3. Navegue a la carpeta ApprovalClient\Bin\Debug y ejecute tres instancias de ApprovalClient.exe.

  4. Haga clic en detectar y espere a que se habilite el botón suscribir.

  5. Escriba un nombre de usuario y haga clic en suscribir. Para un cliente, use UserType1 y para los otros dos, escriba UserType2.

  6. En el cliente UserType1, seleccione el tipo de aprobación de quórum en el menú desplegable y escriba un nombre de documento y su contenido. Haga clic en Aprobación de solicitud. Este tipo de aprobación requieres que los dos clientes UserType2 aprueben o rechacen el documento. Aunque los dos clientes UserType2 deben responder, solo uno de ellos necesita aprobar el documento para que se considere aprobado.

  7. En los clientes UserType2, aparecerá un documento a la espera de aprobación. Selecciónelo y presione aprobar o rechazar. Los resultados deberían mostrarse en el cliente UserType1.

Para ejecutar el escenario de aprobación compleja

  1. Abra un símbolo del sistema con permisos de administrador.

  2. Navegue al directorio que contiene la solución.

  3. Navegue a la carpeta ApprovalClient\Bin\Debug y ejecute cuatro instancias de ApprovalClient.exe.

  4. Haga clic en detectar y espere a que se habilite el botón suscribir.

  5. Escriba un nombre de usuario y haga clic en suscribir. Para un cliente, use UserType1, para los otros dos, escriba UserType2 y en el último, use UserType3.

  6. En el cliente UserType1, seleccione el tipo de aprobación única en el menú desplegable y escriba un nombre de documento y su contenido. Haga clic en Aprobación de solicitud.

  7. En los clientes UserType2, aparecerá un documento a la espera de aprobación. Selecciónelo y presione aprobar; el documento se pasará al cliente UserType3.

    Si el primer quórum UserType2 aprueba el documento, el documento se pasa al cliente UserType3.

  8. Apruebe o rechace el documento en el cliente UserType3. Los resultados deberían mostrarse en el cliente UserType1.

Para realizar una limpieza

  1. Desde un símbolo del sistema Visual Studio, vaya a la carpeta DocumentApprovalProcess y ejecute Cleanup.cmd.