SDK Action
SDK ACTION
E’ una tipologia di funzione che viene solitamente utilizzata per creare delle azioni BPMN custom.
È 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
Una volta registrata, si rende disponibile all’utilizzo nella sezione “Azione” nella quale sono presenti tutte le altre azioni BPMN.
Inoltre una volta scelta la funzione da richiamare, se nella funzione gestiamo dei parametri di input abbiamo la possibilità di passarli direttamente da interfaccia:
NonEsempio
Nel presenti a standard delle funzioni di questa tipologia, ma unseguente esempio concreto potrebbe essereregistro una funzione cheper eliminaaggiungere tuttiun gli eventi a calendario collegatiinvitato ad un ticket.
evento.
SDK::setProcessMakerAction('vte_add_event_invitee', 'modules/SDK/src/ProcessMaker/Utils.php', 'Add invitee to event (event, user/contact)');
Questa funzione necessita di due parametri: l'id dell'evento e l'id dell'invitato che può essere un utente o un contatto. Per poterlachiarezza utilizzare, in questo specifico caso il modulo principale coinvoltoindico nel comando di registrazione anche i parametri nella label della funzione.
Nella funzione che andrò a sviluppare vanno aggiuti i parametri $event e $invitee che saranno popolati con i valori passati dall'interfaccia di configurazione dell'azione.
I primi due parametri invece sono fissi e sono:
$engine l'oggetto contenente tutte le informazioni relative al processo dovrebbeche esseresi Assistenzasta Clienti.eseguendo
$actionid l'id dell'azione corrente
function vte_add_event_invitee($engine, $actionid, $event, $invitee) {
$engine->log('vte_add_event_invitee', "event:$event invitee:$invitee");
if (strpos($event,'x') !== false) list(,$event) = explode('x',$event);
if (strpos($invitee,'x') !== false) list(,$invitee) = explode('x',$invitee);
$parent_module = getSalesEntityType($invitee);
if ($parent_module == 'Contacts') {
$_REQUEST['inviteesid_con'] = $invitee;
} else {
$_REQUEST['inviteesid'] = $invitee;
}
$focus = CRMEntity::getInstance('Events');
$focus->retrieve_entity_info_no_html($event,'Events');
$focus->mode = 'edit';
$focus->save('Events');
}