Skip to main content

SDK Task Condition

E’ una tipologia di funzione che viene utilizzata per eseguire dei controlli custom nelle task di controllo dei processi (conditional task).

Per registrarle va utilizzato il metodo:

SDK::setProcessMakerTaskCondition($func, $src, $label)
$func : nome della funzione
$src : percorso file contenente la funzione
$label : etichetta della funzione

Per de-registrare il file usare:

SDK::unsetProcessMakerTaskCondition($func);
$func : nome della funzione

Se richiamate sulla task di “condizione iniziale” (task nella quale vengono definite le regole di partenza del processo), è possibile rendere specifica la partenza del processo in base al risultato restituito.


taskCondition_1.png

Se richiamate invece sulle delle semplici task di controllo permettono di far prendere al processo strade differenti in base al risultato restituito.

taskCondition_2.png

Le funzioni di questa tipologia saranno sempre disponibili sotto forma di variabili utilizzabili per eseguire controlli.
Un esempio concreto di funzione SDK di questa tipologia è la funzione “get_running_process_current_user” che permette di verificare se il nome dell’utente corrente è uguale o diverso dall’utente definito nella condizione.
Se utilizzata nella condizione iniziale permette di far partire il processo solamente se l’utente corrente è uguale ad un determinato utente.

taskCondition_3.PNG

Esempio

Registro una funzione per verificare se l'indirizzo di fatturazione dell'azienda è uguale quello di spedizione.

SDK::setProcessMakerTaskCondition('vte_compare_account_bill_ship_street', 'modules/SDK/src/ProcessMaker/Utils.php', 'Indirizzi di spedizione e fatturazione uguali [e/n]');

Nella funzione implementata sono presenti i seguenti parametri.
$module: modulo dell'entità su cui viene eseguita la condizione
$id: identificativo dell'entità in formato ws (es. 3x55126)
$data: array con i valori dei campi del record

La funzione deve restituire una stringa da usare per il confronto lato interfaccia.

function vte_compare_account_bill_ship_street($module, $id, $data) {
	list($wsModId,$id) = explode('x',$id);	// do it every time
	
	if ($data['bill_street'] == $data['ship_street']) {
		return 'e';
	} else {
		return 'n';
	}
}

A questo punto posso configurare un processo che parte alla creazione di un'azienda quando l'indirizzo di di fatturazione è diverso da quello di spedizione.

Schermata 2024-02-23 alle 13.02.56.png