automation - nintex - ¿Qué es un sistema de flujo de trabajo?
nintex workflow platform (5)
¿Cómo puedo diferenciar un sistema de flujo de trabajo de una aplicación normal que automatiza algún trabajo? ¿Hay alguna característica específica que deba tener un sistema para categorizarse como un sistema de flujo de trabajo?
Consideraría la aplicación como un sistema de flujo de trabajo si el usuario es guiado a través del proceso de negocios sin la necesidad de consultar cualquier documentación externa de ese proceso de negocios.
Ampliar el ejemplo de seguimiento de errores de Barry Yo diría que su aplicación de seguimiento de errores es una aplicación de flujo de trabajo si, por ejemplo, hay un botón llamado "Cerrar" que al presionar transmite el error a un estado cerrado, tal vez permite al usuario ingresar un comentario de cierre, registros la marca de tiempo y el nombre de usuario y luego envía un correo electrónico de notificación.
No es un sistema de flujo de trabajo si el usuario tiene que elegir el nuevo estado de un menú desplegable y luego enviar un correo electrónico de notificación.
Los sistemas de flujo de trabajo gestionan objetos (a menudo, sustituciones electrónicas reales o lógicas para documentos) que tienen un estado asociado. El estado de un objeto en el sistema es un nodo en una máquina de estado (o una red de Petri ).
Las transiciones de estado mueven un objeto de un estado a otro. Las transiciones pueden ser activadas por personas, eventos automáticos, temporizadores, calendarios, etc. Por lo general, las transiciones representan pasos en un proceso en el mundo real.
Eso es bastante abstracto, así que considere un ejemplo: software de seguimiento de errores. Un informe de error probablemente no esté validado y, como tal, está en la cola del comprobador de control de calidad. El verificador de QA validará el informe y se asegurará de que los pasos sean claros, clasifique el informe según la gravedad, etc., y asígnelo a un desarrollador o grupo de desarrolladores. Luego está en la cola del desarrollador, quien finalmente arreglará o decidirá no reparar el error, que lo enviará de vuelta al control de calidad para su validación. Si hay una disputa sobre el error, podría entrar en un estado en el que burbujee la pila de administración.
Una implementación trivial de lo anterior es usar una enumeración para el estado asociado con cada objeto, y hacer que la bandeja de entrada de todos sea una consulta para objetos con un estado de un valor de enumeración particular.
Esa es la esencia de esto, pero las cosas pueden volverse más complejas, como dividir objetos nuevos, reaccionar a eventos no humanos como el tiempo, servicios internos o externos (es decir, de terceros), etc.
No creo que haya una definición precisa. Aquí hay algunos criterios sueltos:
- coordina el trabajo de más de una persona (pero no groupware),
- en un entorno complejo y organizacional
- generalmente como parte de un proceso comercial administrado (como en BPM).
La automatización de un proceso de negocios, en todo o en parte, durante el cual los documentos, información o tareas pasan de un participante * a otro para la acción, de acuerdo con un conjunto de reglas de procedimiento.
*participant = resource (human or machine)
En mi opinión, hay dos tipos de flujo de trabajo en términos de software. Flujo de trabajo estático (o incorporado) y flujo de trabajo dinámico (programable). Muchos sistemas de administración de documentos, seguimiento de errores o incluso software de blog tienen un flujo de trabajo integrado mediante una transición de estado simple.
Cuando las personas dicen "flujo de trabajo", creo que generalmente se refieren a las que se pueden programar lógicas de negocios en algún software existente, por ejemplo, si el inventario es corto en zanahorias, llame a sysco automáticamente.
Para obtener un ejemplo de la función de flujo de trabajo de la vida real, consulte Microsoft Dynamics CRM .
Un sistema de gestión del flujo de trabajo impulsa a los usuarios a través de un proceso que abarca más de una función dentro de un sistema y potencialmente más de un participante en el flujo de trabajo. El motor de flujo de trabajo conoce el estado del proceso y lo almacena en su propio almacenamiento, que puede o no ser parte de la base de datos de la aplicación principal.
Los flujos de trabajo se pueden modelar utilizando máquinas de estado , redes de petri u otras construcciones , incluidos los lenguajes de script antiguos. Se puede usar un sistema de orquestación independiente para gestionar flujos de trabajo en múltiples aplicaciones. Muchos (pero no todos) admiten BPEL (Business Process Execution Language) como lenguaje de descripción estándar para flujos de trabajo. Si sus aplicaciones están configuradas como una arquitectura orientada a servicios, el sistema de flujo de trabajo puede controlar la funcionalidad de la aplicación para hacer esto. La otra característica de un motor de flujo de trabajo es que debería ser posible abortar el flujo de trabajo y deshacer cualquier cambio de estado manteniendo la coherencia de la base de datos .
www.workflowpatterns.com tiene una colección de documentos sobre sistemas de flujo de trabajo, junto con una biblioteca de patrones.
Ejemplos de aplicaciones para sistemas de flujo de trabajo:
Administración de reclamos de seguros. Esencialmente el abuelo de todos ellos. Típicamente este proceso tendrá reglas que cubran quién puede autorizar cuánto, quién puede procesar reclamaciones en diferentes clases de negocios, qué documentos deben estar presentes y vinculados para proporcionar una pista de auditoría, emitir y rastrear la emisión de pagos y autorizar el trabajo de ajuste de pérdidas. . Un flujo de trabajo típico de reclamaciones rastrearía un reclamo desde la notificación hasta la autorización de reservas y pagos, hasta la emisión del pago, con procesos secundarios para organizar el trabajo de ajuste de pérdidas (posiblemente a través de terceros), manteniendo la autoridad de pago hasta que finalice y emitiendo y pagar los gastos de ajuste de pérdidas. En la práctica, estos procesos pueden ser bastante complicados.
Gestión de pedido, cotización y configuración de un producto complejo, como un sistema informático.
Un ejemplo inusual fue un sistema desarrollado por un fabricante farmacéutico que rastreó el proceso de aprobación de un nuevo producto farmacéutico. Esto también incorporó un sistema experto que tenía el marco regulatorio codificado y podía elegir el camino más corto a través de los aros reglamentarios. Esto redujo su tiempo promedio de ciclo de vida de I + D al mercado de 9 años a 5.5 años.