Devo usare un motore di workflow?

2

Ho bisogno di aggiungere alcune nuove funzionalità a un'applicazione PHP. È seguire i passaggi di un ordine. Un processo crea alcuni ordini, l'ordine va alla conferma, quindi se l'approvazione viene inviata a un fornitore, successivamente il fornitore conferma che può consegnare l'ordine, una richiesta viene fatta al fornitore e così via ...

Devo registrarmi quando ogni passaggio è fatto e inviare notifiche. Inoltre, alcuni passaggi hanno un tempo di stima, e se è trascorso questo tempo ho bisogno di inviare notifiche in modo che tutti siano a conoscenza del ritardo.

All'avvio di un processo, ha una serie predefinita di passaggi, ma a metà l'utente dovrebbe essere in grado di creare nuovi sottomulti ed eliminare o saltare i passaggi futuri.

Devo usare un motore di workflow? Quale suggerisci (solo per open source)?

    
posta Fernando 27.09.2012 - 02:35
fonte

1 risposta

3

Hai delineato alcuni requisiti che sono generalmente soddisfatti dai motori del flusso di lavoro, come ad esempio il processo, l'assegnazione delle attività, le escalation e le notifiche. Da questo punto di vista, avrebbe molto senso seguire un vero motore del flusso di lavoro. Ci sono due aree che mi fanno dubitare che effettivamente si dimostrerà utile per usarne uno nel tuo caso:

  • I motori di workflow possono comportare un investimento significativo del tuo tempo da imparare. Inoltre tendono a complicare l'ambiente in cui viene eseguita l'applicazione. Se il tuo requisito è "una tantum" ed è improbabile che in futuro implementerai funzionalità simili relative al flusso di lavoro, potresti riconsiderare l'utilizzo di uno. Per esempio. Non userei un sistema di gestione documentale completo se tutto quello che volevo fare era caricare un allegato su uno schermo, e qualcosa di simile si applica qui. Normalmente sconsiglio di "rotolare il tuo", ma in questo caso non sono così esitante; Ho avuto a che fare con i tuoi precisi requisiti in passato, e ho scelto di scrivere il mio (a causa di folle scadenze, non chiedere) - è stato un successo clamoroso.
  • Il tuo requisito sull'utente che modifica il processo, ho diversi problemi con. In primo luogo, è il tipo di desiderio sdolcinato che crescerà nel tempo. "Oh, ci siamo dimenticati, l'utente deve specificare chi sta per agire quel passo in più. Oh sì, può essere qualcuno al di fuori della compagnia. Oh sì, devono essere in grado di specificare che almeno 2 dei 5 mirati i manager devono approvare ", ecc. Inoltre, i flussi di lavoro possono essere bestie complesse, e di solito è difficile consentire a un utente di modificarli senza romperli e farlo in modo rapido e intuitivo per l'utente . Oltre a ciò, molti motori del flusso di lavoro non consentiranno facilmente la modifica dinamica del processo, quindi potreste essere limitati a un tipo di logica fissa come: "ripetere questo passaggio generico finché non si esauriscono i passaggi definiti dall'utente". La mia esperienza si trova al di fuori dei motori open source, ma questo sarebbe stato un requisito difficile da implementare nei 3 o 4 proprietari con cui ho lavorato nel corso degli anni.

Per riassumere, ad eccezione della modificabilità dell'utente, i requisiti sono una buona corrispondenza per un motore di workflow. Il mio suggerimento: capire se c'è un motore là fuori che ti dà tutto ciò di cui hai bisogno (forse qualcun altro può suggerire specifiche), e fare un po 'di R & D con esso. Sarai quindi in una posizione migliore per valutare le tue opzioni.

EDIT: Mi dispiace, la mia connessione è andata giù mentre ho fatto quel post, e sembra essere stato troncato. L'ho recuperato ora.

    
risposta data 27.09.2012 - 13:06
fonte