Funzioni Custom
È possibile aggiungere funzioni custom per popolare campi di moduli, form dinamiche, mail, ecc con il seguente metodo:
SDK::setProcessMakerFieldAction($func, $src, $label, $parameters='');
$func : nome della funzione
$src : percorso file contenente la funzione
$label : etichetta della funzione
$parameters (optional) : parametri statici (es. riferimento campo fisso)
Esempio di registrazione
SDK::setProcessMakerFieldAction('vte_calculate_percentage','modules/SDK/src/ProcessMaker/Utils.php','Calculate percentage (percentage,total)');
N.B. All’interno delle funzioni registrate sono disponibili alcune variabili globali, le quali devono essere dichiarate: global $engine, $current_process_actionid.
Queste contengono rispettivamente l'oggetto contenente tutte le informazioni relative al processo che si sta eseguendo e l'id dell'azione corrente (es. Crea entità, Aggiorna entità, ... )
È possibile inoltre aggiungere funzioni custom per verificare condizioni complesse:
SDK::setProcessMakerTaskCondition($func, $src, $label);
$func : nome della funzione
$src : percorso file contenente la funzione
$label : etichetta della funzione
SDK::setProcessMakerTaskCondition('vte_compare_account_bill_ship_street','modules/SDK/src/ProcessMaker/Utils.php','Indirizzi di spedizione e fatturazione uguali [e/n]');
Infine è possibile registrare nuove azioni con il seguente metodo:
SDK::setProcessMakerAction($func, $src, $label);
$func : nome della funzione
$src : percorso file contenente la funzione
$label : etichetta della funzione
SDK::setProcessMakerAction('close_tickets','modules/SDK/src/ProcessMaker/Utils.php','Chiudi Ticket relazionati');
Di seguito dove è possibile richiamare le funzioni SDK sopra citate nei processi:
FieldAction
Nel valore di default di una campo presente in un blocco di una form dinamica:
TaskCondition
All'interno di una task di condizione:
Action
Alla creazione di una nuova azione:
Inoltre una volta scelta la funzione da richiamare, se nella funzione gestiamo dei parametri di input abbiamo la possibilità di passarli direttamente da interfaccia: