Actualmente estamos construyendo una aplicación que hace uso de un proceso de aprobación no simple, que implica múltiples niveles de aprobación, volviendo, revisión, notificaciones, etc ..¿Cuál es el mejor diseño para una aplicación web que adopta WF?
Debido a dicho requisito, se les pidió que hacer uso de un marco de flujo de trabajo también para facilitar la transparencia del proceso.
En el prototipo hemos incorporado con éxito el flujo de trabajo y funciona bien. sin embargo, no podemos determinar las acciones que deberían estar disponibles para el usuario. Por ejemplo, tengo las siguientes operaciones de recepción: create(), managerApprove(), RAApprove(), ORMApprove() ... ahora si las llamo por orden, usando el nombre de usuario correcto, entonces funcionarán. Obviamente, si no los llamo por orden, arrojarán una FaultException porque no está en el estado correcto. La pregunta es, ¿cómo sabré qué funciones están disponibles para exponer en la interfaz de usuario? Por ejemplo, si actualmente está esperando la aprobación del administrador, simplemente muestre un botón de aprobación para el administrador ...
Como solución alternativa, he creado otro servicio WCF que recupera los mismos datos de la base de datos y luego determina el estado correcto de la IU (qué acciones puede realizar el usuario). Creo que esto es una duplicación de lógica, ya que eso ya se supone en la WF.
Además, si el WF cambia, entonces mi servicio separado de WCF podría romperse. Por ejemplo, si cambio el orden de aprobación en el flujo de trabajo, entonces también necesito actualizar la lógica en el servicio WCF. De lo contrario, mostraría un estado de página no válida y al hacer clic en aprobar invocará el método incorrecto y provocará una excepción de falla.
Cualquier ayuda será muy apreciada ... Soy realmente nuevo en WF4.
ACTUALIZACIÓN:
Mi colega poner mi pregunta de esta manera:
¿Cuál es el mejor diseño para una aplicación web que adopta WF?
Las principales razones por las WF se está considerando - Los flujos de trabajo involucrados están ejecutando a largo - Los flujos de trabajo son los flujos de trabajo humanos - que necesitan para coordinar las acciones de las personas reales - Proceso de Transparencia
Además, ¿cómo debería integrar el flujo de trabajo con la interfaz de usuario? ¿Cómo sabrá la IU en qué estado debería estar y qué páginas mostrar qué usuarios?
Supongo que es una forma. pero se siente como un truco. – Mel
Tienes razón porque es. Lo que hace el trabajo si no hay una buena manera de hacerlo. – Maurice
Tenía la esperanza de que hubiera una mejor manera ... Estoy empezando a darme la impresión de que WF realmente está perjudicando el diseño ... parece que estamos haciendo lo correcto al usar WF pero también forzados a hacer cosas "incorrectas" como un efecto secundario. – Mel