Domanda

WorkflowRuntime workflowRuntime = new WorkflowRuntime();

 ExternalDataExchangeService dataExchangeService;
 dataExchangeService = new ExternalDataExchangeService();
 workflowRuntime.AddService(dataExchangeService);

 PaymentProcessingService paymentProcessing;
 paymentProcessing = new PaymentProcessingService();
 dataExchangeService.AddService(paymentProcessing);

Con il codice di cui sopra, la nostra applicazione può utilizzare per paymentProcessing.RaiseXXXXEvent interattivo con l'istanza del flusso di lavoro. La mia domanda è: Qual è il principio per implementare un tale meccanismo. Penso che questa sia una sorta di Event Driven modello , ma come faccio a implementare questo meccanismo e perché? Vi prego di indicare la direzione o tutti i riferimenti sono apprezzati.

A proposito, c'è il meccanismo in jBPM? Non jBPM includono il flusso di lavoro e la sequenza del flusso di lavoro macchina a stati come fondamento finestra flusso di lavoro?

Grazie!

È stato utile?

Soluzione

WF definisce un insieme di servizi di workflow nucleo che scheduling filo maniglia, workflow persistenza, transazioni, e il monitoraggio del flusso di lavoro. I progettisti di WF avrebbero potuto incorporato l'attuazione di tali servizi nel motore di runtime in sé, ma hanno saggiamente scelto di esternare loro, ponendo le loro implementazioni nel servizi pluggable. Questo si pone nel controllo . Tu decidi quali servizi per l'uso (alcuni sono opzionali), e che l'attuazione da utilizzare per ogni servizio.

WF supporta anche un altro tipo di servizio noto come un servizio locale (a volte chiamato un data servizio di cambio). Questo è un servizio che si progettare e implementare da soli. Un servizio locale può servire quasi ogni scopo, ma un uso generale è quello di facilitare le comunicazioni tra le istanze del flusso di lavoro e l'applicazione host. In contrasto con questo, servizi di workflow nucleo hanno ciascuno uno scopo (per esempio, la persistenza, monitoraggio) che è stato definito da Microsoft. È possibile sviluppare implementazioni alternative per ogni servizio di base, ma che non cambiano il loro scopo definito.

Per avere il vostro servizio locale a disposizione per il vostro flusso di lavoro. Ci sono diversi metodi per fare questo. La più semplice sarebbe quella di utilizzare il CallExternalMethodActivity e configurarlo.

Anche il servizio dovrebbe avere un'interfaccia e decorato con [ExternalDataExchange].

Se siete alla ricerca di scrivere la propria implementazione di un servizio di base, ecco un link che descrivono come fornire il proprio servizio di flusso di lavoro di base .

http://msdn.microsoft. com / it-it / library / ms734705 (v = VS.90) aspx

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