Domanda

Abbiamo creato un sistema di domanda di sovvenzione per un cliente. Ora hanno richiesto alcune semplici funzionalità del flusso di lavoro (sono necessarie due approvazioni prima di presentare la domanda).

Ho pensato al design del database che avrei usato per codificare i requisiti del flusso di lavoro in modo da offrire la massima flessibilità e riusabilità, e sarei interessato a sapere se ci sono modelli di progettazione esistenti o migliori pratiche là fuori per questo tipo di sistema. Qualche suggerimento?

Nota: questa è un'applicazione ASP.NET personalizzata e lanceremo sicuramente la nostra soluzione per il flusso di lavoro. Non mi interessa acquistare un componente, o tanto meno spostare tutto su una piattaforma come SharePoint.

È stato utile?

Soluzione

Non guardare la Windows Workflow Foundation sarebbe sciocco . È stato creato esattamente per ciò di cui hai bisogno.

Ecco un link specifico ASP.NET .

Altri suggerimenti

Se la funzionalità del flusso di lavoro è così semplice, il tuo approccio è sufficiente. Ma se vuoi (o se il cliente in seguito chiede) più funzionalità come:

  • Promemoria agli approvatori
  • Avvisi per gli amministratori
  • Escalation e riallocazioni di incarichi
  • Annullamenti di incarichi
  • Allocazioni basate su regole
  • Monitoraggio dei compiti

allora potresti dover prendere in considerazione un componente del flusso di lavoro come Workflow Foundation .

È possibile trovare un approccio accademico ai modelli di flusso di lavoro qui e sono raggruppati in quattro categorie:

Penso che la categoria più interessante per il tuo caso siano i pattern delle risorse.

una soluzione che ha funzionato bene in passato è creare gruppi di approvazione con membri, codici di approvazione come una semplice tabella di ricerca e codificare la macchina a stati di approvazione in modo che ogni passaggio derivi dall'assegnazione di un codice di approvazione a un articolo di un membro del gruppo. Ciò consente di modificare l'appartenenza al gruppo e di modificare i percorsi di approvazione senza dover ricodificare nulla. Puoi anche aggiungere trigger ed endpoint di codice (tramite reflection, ad es. Nome dell'assembly + nome della classe + nome del metodo) per eseguire azioni ad effetto collaterale e di commit / notifica ad ogni passaggio

Ho una domanda simile. Esiste un gruppo di processi batch con interdipendenze. Sto lavorando a un flusso di lavoro come il sistema per questi processi batch.

Quale dei seguenti due design è migliore:

  1. Progettazione guidata dal database in cui ogni processo aggiorna il suo stato e altri dettagli nelle tabelle del database e altri processi interrogano queste tabelle oppure

  2. Un approccio basato su JMS o di messaggistica in cui i processi comunicano tra loro utilizzando le code di messaggistica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top