Differenze tra le versioni di "Avvio di sotto-processi"

Da wiki.maggioli.it.
Jump to navigation Jump to search
imported>Root
imported>Root
Riga 1: Riga 1:
==Descrizione==
Questa attività permette di avviare un sotto-processo.  
Questa attività permette di avviare un sotto-processo.  


Qualsiasi processo già inserito nel sistema può essere utilizzato come sotto-processo. Se il processo scelto definisce dei parametri in entrata e/o in uscita, sarà possibile interfacciarsi utilizzando gli attributi della classe corrente.
Qualsiasi processo già inserito nel sistema può essere utilizzato come sotto-processo. Se il processo scelto definisce dei parametri in entrata e/o in uscita, sarà possibile interfacciarsi utilizzando gli attributi della classe corrente.


==Selezione del processo==
La selezione del processo da utilizzare come sotto-processo avviene specificando i campi '''Applicazione''' e '''Classe'''. Una volta impostato il primo campo, il secondo campo offrirà i valori corrispondenti. I processi di workflow sono catalogati sempre per applicazione e classe.
La selezione del processo da utilizzare come sotto-processo avviene specificando i campi '''Applicazione''' e '''Classe'''. Una volta impostato il primo campo, il secondo campo offrirà i valori corrispondenti. I processi di workflow sono catalogati sempre per applicazione e classe.


Il parametro '''Numero di sotto processi''' permette di scegliere quante copie del sotto-processo avviare. Il valore può essere impostato manualmente oppure tramite il valore di un attributo della classe corrente in modo da rendere dinamico il comportamento. E' possibile anche attivare la funzionalità '''Desumi dai parametri''', ma questa possibilità viene spiegata più avanti perchè necessita di ulteriori nozioni.
==Molteplicità==
Il parametro '''Numero di sotto processi''' permette di scegliere quante copie del sotto-processo (molteplicità) avviare. Il valore può essere impostato manualmente oppure tramite il valore di un attributo della classe corrente in modo da rendere dinamico il comportamento. E' possibile anche attivare la funzionalità '''Desumi dai parametri''', ma questa possibilità viene spiegata più avanti perchè necessita di ulteriori nozioni.


==Descrizione==
Il parametro '''Descrizione sottoprocessi''' permette di impostare una descrizione che verrà visualizzata nelle interfacce di amministrazione che mostrano le istanze in esecuzione.
Il parametro '''Descrizione sottoprocessi''' permette di impostare una descrizione che verrà visualizzata nelle interfacce di amministrazione che mostrano le istanze in esecuzione.


==Comunicazione con il sotto-processo==
Una volta selezionata la classe di processo da avviare, nelle due tabelle sottostanti compaiono i parametri di input (tabella superiore) e di output (tabella inferioe) di tale processo. Tramite questi due pannelli è possibile passare delle informazioni al sotto-processo e successivamente leggere i risultati che questo produce.  
Una volta selezionata la classe di processo da avviare, nelle due tabelle sottostanti compaiono i parametri di input (tabella superiore) e di output (tabella inferioe) di tale processo. Tramite questi due pannelli è possibile passare delle informazioni al sotto-processo e successivamente leggere i risultati che questo produce.  


Parametri in input
===Parametri in input===
La colonna '''Parametri in input''' mostra tutti i parametri che il sotto-processo può accettare.
La colonna '''Parametri in input''' mostra tutti i parametri che il sotto-processo può accettare.
I valori in input possono essere digitati manualmente oppure possono essere degli attributi della classe corrente. L'impostazione avviene nella colonna '''Valore'''.
I valori in input possono essere digitati manualmente oppure possono essere degli attributi della classe corrente. L'impostazione avviene nella colonna '''Valore'''.


Comportamento
====Comportamento====
La colonna '''Comportamento''' permette di definire come il dato in entrata viene passato a tutte le istanze di sotto-processo che verranno avviate. Le possibilità sono '''Copia su ogni istanza''' e '''Distribuisci su istanze'''.
La colonna '''Comportamento''' permette di definire come il dato in entrata viene passato a tutte le istanze di sotto-processo che verranno avviate. Le possibilità sono '''Copia su ogni istanza''' e '''Distribuisci su istanze'''.


Copia su ogni istanza
=====Copia su ogni istanza=====
Questo comportamento implica una copia esatta per ogni sotto-processo del valore digitato oppure contenuto dell'attributo di classe. Questo significa che ogni sotto-processo avviato avrà nel parametro specificato lo stesso valore.
Questo comportamento implica una copia esatta per ogni sotto-processo del valore digitato oppure contenuto dell'attributo di classe. Questo significa che ogni sotto-processo avviato avrà nel parametro specificato lo stesso valore.


Distribuisci su istanze
=====Distribuisci su istanze=====
Questo comportamento permette invece di passare ad ogni istanza un differente valore per il parametro specificato. La funzionalità è attiva solamente quando il valore viene passato tramite un attributo della classe corrente, ed in particolare tramite un attributo di tipo array (quindi Long[], Double[], Date[], String[]). Se l'attributo utilizzato invece è di tipo scalare (quindi Long, Double, Date, String) il comportamento è identico a '''Copia su ogni istanza'''.
Questo comportamento permette invece di passare ad ogni istanza un differente valore per il parametro specificato. La funzionalità è attiva solamente quando il valore viene passato tramite un attributo della classe corrente, ed in particolare tramite un attributo di tipo array (quindi Long[], Double[], Date[], String[]). Se l'attributo utilizzato invece è di tipo scalare (quindi Long, Double, Date, String) il comportamento è identico a '''Copia su ogni istanza'''.
'''Esempio:''' Viene passato un array String[] contenente tre elementi "primo", "secondo", "terzo" e vengono avviate tre istanze di sotto-processo. Ogni sotto processo riceverà in input uno dei valori, in ordine di avvio. Quindi il primo sotto-processo avrà il parametro valorizzato con "primo", il secondo con "secondo" e così via.
'''''Attenzione:''' Quando si utilizza questo comportamento è necessario che il numero di elementi contenuti nell'array passato come parametro sia maggiore o uguale alla molteplicità (numero di sotto-processi). In caso negativo il flusso si blocca segnalando l'errore.''
===Parametri in output===
Una volta che tutti i sotto-processi sono terminati l'attività di avvio sotto-processo termina ed il flusso dell'istanza chiamante procede ai passi successivi. E' possibile utilizzare i valori di ritorno prodotti dai sotto-processi per ulteriori elaborazioni. Per fare questo è sufficiente impostare nella colonna '''Copia il valore in''' su quale attributo della classe corrente copiare il risultato, e se tale risultato dev'essere utilizzato anche per pilotare delle condizioni di uscita.
====Comportamento====
Mentre se si avvia un solo sotto-processo il flusso dei dati è semplice, il problema si pone quando si avviano più sotto processi: come recuperare i risultati di tutti i sotto processi? La regola da utilizzare viene specificata sempre nella colonna '''Comportamento'''.
=====Valore ultima istanza=====
Questo comportamento istruisce il workflow ad utilizzare come risultato solamente quello prodotto dall'ultimo sotto-processo terminato (quello che in effetti causa la prosecuzione del flusso chiamante). In questa modalità i risultati di tutti gli altri sotto-processi vengono semplicemente ignorati. Questo è il default e garantisce un funzionamento intuitivo nel caso in cui venga avviato un singolo sotto-processo.
=====Unione delle istanze=====
Questo comportamento invece è simile al '''Distribuisci su istanze''' dei paramerti di input, solo che funziona al contrario. Questo significa che tutti i valori del parametro di output vengono presi da tutti i sotto-processi terminati (in ordine di terminazione) e vengono assemblati in un array. La funzionalità è attiva solo se il valore viene copiato in un attributo di tipo array. Se il sotto-processo torna a sua volta un array come risultato, tutti gli array vengono concatenati in uno unico, ma questo impedisce di capire quale elemento dell'array arriva da quale sotto-processo.

Versione delle 17:24, 10 mar 2010

Descrizione

Questa attività permette di avviare un sotto-processo.

Qualsiasi processo già inserito nel sistema può essere utilizzato come sotto-processo. Se il processo scelto definisce dei parametri in entrata e/o in uscita, sarà possibile interfacciarsi utilizzando gli attributi della classe corrente.

Selezione del processo

La selezione del processo da utilizzare come sotto-processo avviene specificando i campi Applicazione e Classe. Una volta impostato il primo campo, il secondo campo offrirà i valori corrispondenti. I processi di workflow sono catalogati sempre per applicazione e classe.

Molteplicità

Il parametro Numero di sotto processi permette di scegliere quante copie del sotto-processo (molteplicità) avviare. Il valore può essere impostato manualmente oppure tramite il valore di un attributo della classe corrente in modo da rendere dinamico il comportamento. E' possibile anche attivare la funzionalità Desumi dai parametri, ma questa possibilità viene spiegata più avanti perchè necessita di ulteriori nozioni.

Descrizione

Il parametro Descrizione sottoprocessi permette di impostare una descrizione che verrà visualizzata nelle interfacce di amministrazione che mostrano le istanze in esecuzione.

Comunicazione con il sotto-processo

Una volta selezionata la classe di processo da avviare, nelle due tabelle sottostanti compaiono i parametri di input (tabella superiore) e di output (tabella inferioe) di tale processo. Tramite questi due pannelli è possibile passare delle informazioni al sotto-processo e successivamente leggere i risultati che questo produce.

Parametri in input

La colonna Parametri in input mostra tutti i parametri che il sotto-processo può accettare. I valori in input possono essere digitati manualmente oppure possono essere degli attributi della classe corrente. L'impostazione avviene nella colonna Valore.

Comportamento

La colonna Comportamento permette di definire come il dato in entrata viene passato a tutte le istanze di sotto-processo che verranno avviate. Le possibilità sono Copia su ogni istanza e Distribuisci su istanze.

Copia su ogni istanza

Questo comportamento implica una copia esatta per ogni sotto-processo del valore digitato oppure contenuto dell'attributo di classe. Questo significa che ogni sotto-processo avviato avrà nel parametro specificato lo stesso valore.

Distribuisci su istanze

Questo comportamento permette invece di passare ad ogni istanza un differente valore per il parametro specificato. La funzionalità è attiva solamente quando il valore viene passato tramite un attributo della classe corrente, ed in particolare tramite un attributo di tipo array (quindi Long[], Double[], Date[], String[]). Se l'attributo utilizzato invece è di tipo scalare (quindi Long, Double, Date, String) il comportamento è identico a Copia su ogni istanza.

Esempio: Viene passato un array String[] contenente tre elementi "primo", "secondo", "terzo" e vengono avviate tre istanze di sotto-processo. Ogni sotto processo riceverà in input uno dei valori, in ordine di avvio. Quindi il primo sotto-processo avrà il parametro valorizzato con "primo", il secondo con "secondo" e così via.

Attenzione: Quando si utilizza questo comportamento è necessario che il numero di elementi contenuti nell'array passato come parametro sia maggiore o uguale alla molteplicità (numero di sotto-processi). In caso negativo il flusso si blocca segnalando l'errore.

Parametri in output

Una volta che tutti i sotto-processi sono terminati l'attività di avvio sotto-processo termina ed il flusso dell'istanza chiamante procede ai passi successivi. E' possibile utilizzare i valori di ritorno prodotti dai sotto-processi per ulteriori elaborazioni. Per fare questo è sufficiente impostare nella colonna Copia il valore in su quale attributo della classe corrente copiare il risultato, e se tale risultato dev'essere utilizzato anche per pilotare delle condizioni di uscita.

Comportamento

Mentre se si avvia un solo sotto-processo il flusso dei dati è semplice, il problema si pone quando si avviano più sotto processi: come recuperare i risultati di tutti i sotto processi? La regola da utilizzare viene specificata sempre nella colonna Comportamento.

Valore ultima istanza

Questo comportamento istruisce il workflow ad utilizzare come risultato solamente quello prodotto dall'ultimo sotto-processo terminato (quello che in effetti causa la prosecuzione del flusso chiamante). In questa modalità i risultati di tutti gli altri sotto-processi vengono semplicemente ignorati. Questo è il default e garantisce un funzionamento intuitivo nel caso in cui venga avviato un singolo sotto-processo.

Unione delle istanze

Questo comportamento invece è simile al Distribuisci su istanze dei paramerti di input, solo che funziona al contrario. Questo significa che tutti i valori del parametro di output vengono presi da tutti i sotto-processi terminati (in ordine di terminazione) e vengono assemblati in un array. La funzionalità è attiva solo se il valore viene copiato in un attributo di tipo array. Se il sotto-processo torna a sua volta un array come risultato, tutti gli array vengono concatenati in uno unico, ma questo impedisce di capire quale elemento dell'array arriva da quale sotto-processo.