Condividi tramite


Utilizzo delle modifiche dei flussi di lavoro

È possibile apportare modifiche in fase di esecuzione a un'istanza del flusso di lavoro in esecuzione. Tali modifiche possono essere motivate da omissioni in fase di progettazione o dalla necessità di una logica di business che migliori e modelli in modo più completo i processi aziendali e consistere in modifiche a proprietà e associazioni di attività. Le modifiche del flusso di lavoro non sono destinate a situazioni nelle quali si desidera apportare modifiche globali, che comportano un flusso di lavoro significativamente diverso rispetto ai principi di progettazione originali. In casi simili, è opportuno progettare un nuovo flusso di lavoro anziché apportare modifiche a un'istanza in esecuzione.

Le modifiche del flusso di lavoro si applicano a una sola istanza di un flusso di lavoro. Non sono supportate modifiche basate sul tipo con replica a ogni istanza in esecuzione e futura di un tipo di flusso di lavoro specificato.

È possibile utilizzare le modifiche del flusso di lavoro per svolgere le operazioni seguenti:

  • Modificare la struttura del flusso di lavoro, ad esempio, aggiungere o rimuovere un'attività.

  • Modificare il controllo delle modifiche.

Di seguito sono riportati alcuni esempi comuni di modifiche del flusso di lavoro:

  • Modifica di un oggetto RuleSet utilizzato da un'attività PolicyActivity.

  • Aggiornamento delle definizioni di RuleCondition per modificare il comportamento di attività con diramazioni, ad esempio ConditionedActivityGroup e IfElseActivity.

  • Aggiunta di una nuova attività personalizzata o di un'attività InvokeWorkflowActivity se è necessario aggiungere un nuovo processo aziendale al flusso di lavoro dopo averlo distribuito e avere iniziato a eseguirlo.

  • Modifiche dell'autore apportate in modo dichiarativo utilizzando il markup del flusso di lavoro dall'esterno del flusso, utilizzando markup aggiornato come parametro per apportare la modifica.

  • Aggiunta di una nuova attività EventDrivenActivity per rispondere a un nuovo evento, ad esempio un passaggio di approvazione aggiuntivo.

L'applicazione di una modifica a un flusso di lavoro in esecuzione può avvenire in due punti di ingresso diversi: nel file di codice del flusso di lavoro e all'esterno del flusso di lavoro, ad esempio dall'host del flusso. Per ulteriori informazioni sull'applicazione delle modifiche del flusso di lavoro, vedere Procedura: applicare modifiche del flusso di lavoro ai flussi di lavoro.

Restrizioni delle modifiche del flusso di lavoro

Di seguito sono riportate alcune restrizioni delle modifiche del flusso di lavoro delle quali è necessario essere a conoscenza, imposte da Windows Workflow Foundation:

  • È possibile aggiungere o rimuovere attività da un'istanza del flusso di lavoro, ma non è possibile modificare proprietà relative a un'attività esistente, a meno che non siano condizioni della regola dichiarativa o set di regole.

  • Non è possibile aggiungere o rimuovere dinamicamente le attività figlio di tipi di attività composte personalizzate che incorporano attività figlio nella propria definizione. Questo perché le attività composte personalizzate come queste sono attività "black box" e non possono essere modificate in modo fondamentale in fase di esecuzione.

  • Non è possibile rimuovere dinamicamente in fase di esecuzione un'attività non avente come stato Initialized o Closed.

Gli sviluppatori possono limitare l'utilizzo delle modifiche del flusso di lavoro tramite la classe ActivityCondition collegata all'attività radice, utilizzata dal runtime del flusso di lavoro per determinare se siano consentite modifiche del flusso di lavoro in un'istanza specifica.

Le attività composte personalizzate sono in grado di convalidare modifiche proposte, quali ad esempio l'aggiunta o la rimozione di attività figlio. Ciò consente agli sviluppatori di attività di determinare se modifiche del flusso di lavoro proposte siano in conflitto con la funzionalità prevista della relativa 'attività. Questa funzionalità viene fornita tramite un oggetto ActivityValidator personalizzato, dove gli sviluppatori possono eseguire l'override del metodo ValidateActivityChange e aggiungere la propria logica di convalida delle modifiche del flusso di lavoro personalizzata.

Vedere anche

Concetti

Procedura: applicare modifiche del flusso di lavoro ai flussi di lavoro

Altre risorse

Sviluppo di attività flusso di lavoro
Sviluppo dei flussi di lavoro

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.