Proceso de aprobación de un documento

.NET Framework (current version)
 

Publicado: abril de 2016

En este ejemplo se muestra el uso de varias características de Windows Workflow Foundation (WF) y Windows Communication Foundation (WCF) al mismo tiempo.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.

System_CAPS_ICON_important.jpg Importante

Puede que los ejemplos ya estén instalados en su equipo.Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<>InstallDrive:\WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF).Este ejemplo se encuentra en el siguiente directorio.

<unidadDeInstalación>: \WF_WCF_Samples\WF\Application\DocumentApprovalProcess

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

Flujo de trabajo del proceso de aprobación de un documento

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 administrador 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 administrador de aprobaciones.

Desde el punto de vista de la aplicación de administrador 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.

Para configurar la base de datos
  1. Desde un símbolo del sistema de Visual Studio 2010 abierto con privilegios de administrador, navegue a esta carpeta DocumentApprovalProcess y ejecute Setup.cmd.
Para configurar la aplicación
  1. Con Visual Studio 2010, abra el archivo de solución de DocumentApprovalProcess.sln.

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

  3. Para ejecutar la solución, inicie la aplicación de administrador de aprobaciones haciendo clic con el botón secundario 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 Solicitar aprobación.

  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 Solicitar aprobación.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 UserType2, para los otros dos, escriba UserType1 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 Solicitar aprobación.

  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. En un símbolo de sistema de Visual Studio 2010, navegue a la carpeta DocumentApprovalProcess y ejecute Cleanup.cmd.
Mostrar: