Supporto L'attività umana in Windows Workflow 4
-
09-10-2019 - |
Domanda
Sto indagando Windows Workflow (WF) per .NET 4.0 e sembra che ci sia un paio di pezzi mancanti. Da un href="http://en.wikipedia.org/wiki/Business_process_modeling" rel="nofollow"> BPM prospettiva
Per esempio, supponiamo di avere più istanze del flusso di lavoro a lungo in esecuzione di diversi flussi di lavoro diversi in esecuzione su un server di applicazioni (ad esempio AppFabric). Molti dei casi sono in attesa a un'attività per una chiamata da un cliente (forse un WCF ricezione con la correlazione in base al contenuto). I clienti devono essere in grado di interrogare il server per determinare quale workflow casi (da qualsiasi flusso di lavoro) sono in attesa di input da loro. Questo deve essere basato sui diritti (preferibilmente utilizzando servizi di Active Directory) al livello di attività. Ad esempio: Flusso di lavoro 1 ha 3 istanze in esecuzione, due in attività A (ordini 123 e 456) e uno alla attività B (ordine 789). Bill interroga il server e vede: Abby interroga il server e vede: Questo articolo discute scrittura la funzionalità (supporto per le attività umane) da zero per WF 3.x. Domande: Nota. Preferirei di no paio la soluzione a SharePoint se posso evitarlo
Flusso di lavoro 2 ha 1 istanza in esecuzione in attività C (elemento di lavoro 99). Workflow Activity Key
1 A orderId=123
1 A orderId=456
2 C workItemId=99
Workflow Activity Key
1 A orderId=123
1 A orderId=456
1 B orderId=789
Soluzione
Ok cominciamo con i awnsers semplici.
- Non v'è alcun supporto diretto per questo nella casella
- Per quanto ne so non c'è progetto OS che offre questa funzionalità.
- Non che io sono a conoscenza, ma poi devo ammettere che non ero a conoscenza di questo articolo sia.
Ora, per la cattiva notizia.
Si supponga di voler scrivere qualcosa del genere ci sono alcuni elementi di base in luogo comunque. Se si utilizza lo SqlWorkflowInstanceStore otterrete una colonna contenente i segnalibri correnti per un determinato flusso di lavoro. Questo vi dirà che ricevono le attività sono attivi in ??un determinato flusso di lavoro al momento.
C'è anche il concetto di promozione proprietà nel SqlWorkflowInstanceStore che vi permetterà di estrarre, e quindi interrogare il flusso di lavoro variabili come l'orderId nel tuo esempio. Un'altra cosa al registro è la persona che ha iniziato il flusso di lavoro come molto spesso certe azioni sono ammesse solo dal cedente.
Coppia di questi con una tabella personalizzata con le regole di sicurezza per il flusso di lavoro e WCF funzionamento e dovrebbe pensare si è sulla buona strada per un'implementazione di base qui.