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
    • Attività A, correlato su orderId
      • I diritti per: Abby, Bill
    • Attività B, correlato su orderId
      • Diritti di: Abby
  • Flusso di lavoro 2
    • Attività C, correlato su workItemId
      • Diritti di: Bill

Flusso di lavoro 1 ha 3 istanze in esecuzione, due in attività A (ordini 123 e 456) e uno alla attività B (ordine 789).
Flusso di lavoro 2 ha 1 istanza in esecuzione in attività C (elemento di lavoro 99).

Bill interroga il server e vede:

Workflow  Activity  Key
1         A         orderId=123
1         A         orderId=456
2         C         workItemId=99

Abby interroga il server e vede:

Workflow  Activity  Key
1         A         orderId=123
1         A         orderId=456
1         B         orderId=789

Questo articolo discute scrittura la funzionalità (supporto per le attività umane) da zero per WF 3.x.

Domande:

  1. C'è qualcosa di questa funzionalità in WF 4? Se è così, come si chiama?
  2. In caso contrario, c'è un progetto Open Source che aggiunge qualsiasi di questa funzionalità per WF 4?
  3. In caso contrario, ci sono più linee guida up-to-date per l'attuazione di esso che l'articolo di cui sopra?

Nota. Preferirei di no paio la soluzione a SharePoint se posso evitarlo

È stato utile?

Soluzione

Ok cominciamo con i awnsers semplici.

  1. Non v'è alcun supporto diretto per questo nella casella
  2. Per quanto ne so non c'è progetto OS che offre questa funzionalità.
  3. 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.

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