SDK Field Action
Questa tipologia di funzione viene normalmente utilizzata per valorizzare i campi di un record, form dinamica, ecc. con dei valori calcolati utilizzando 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)
Queste funzioni possono essere richiamate dalle sezioni apposite “Funzioni SDK” disponibili nel menù a tendina “Selezione opzione” situato in alto a destra di ogni singolo campo.
N.B: Tutte le funzioni custom registrate verranno sempre inserite nella sezione “Funzioni SDK”, la sezione “Funzioni data” viene utilizzata esclusivamente per contenere le funzione php disponibili a standard che riguardano I campi data.
Un esempio concreto di funzione SDK di questa tipologia è la funzione “sum()” che restituisce la somma dei parametri (statici o dinamici) passati.
E’ possibile memorizzare il risultato in un campo di una form dinamica di un Process helper inserendo la funzione come valore di default, oppure inserirlo direttamente in campo di un modulo sfruttando le azioni standard di crea o aggiorna entità.
Esempio
Registro una funzione per il calcolo della percentuale che avrà bisogno dei parametri in ingresso percentuale e totale.
SDK::setProcessMakerFieldAction('vte_calculate_percentage','modules/SDK/src/ProcessMaker/Utils.php','Calculate percentage (percentage,total)');
Nella funzione implementata indicherò quindi i 2 parametri e ritornerò il risultato dell'operazione.
function vte_calculate_percentage($percentage, $total) {
global $engine, $current_process_actionid;
$value = ($percentage / 100) * $total;
return $value;
}
N.B. All’interno delle funzioni registrate sono disponibili le variabili globali $engine e $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à, ... )