====== Workflow API Java====== Tutte le api sono esposte dal service //workflowService//, che è disponibile da qualsiasi .groovy eseguito da geoweb direttamente o sotto la variabile services (services.workflowService). * [[:custom:api_java_workflow#void activateProcessInstanceById(String processInstanceId)|void activateProcessInstanceById(String processInstanceId)]] * [[:custom:api_java_workflow#boolean cancelProcessInstance(String gwClassName, String processInstanceId)|boolean cancelProcessInstance(String gwClassName, String processInstanceId))]] * [[:custom:api_java_workflow#boolean cancelProcessInstances(String gwClassName, List processInstanceIdList)|boolean cancelProcessInstances(String gwClassName, List processInstanceIdList)]] * [[:custom:api_java_workflow#boolean cancelArchivedProcessInstance(String gwClassName, String processInstanceId)|boolean cancelArchivedProcessInstance(String gwClassName, String processInstanceId)]] * [[:custom:api_java_workflow#boolean cancelArchivedProcessInstances(String gwClassName, List processInstanceIdList)|boolean cancelArchivedProcessInstances(String gwClassName, List processInstanceIdList)]] * [[:custom:api_java_workflow#void claimTask(String taskId, String userId)|void claimTask(String taskId, String userId)]] * [[:custom:api_java_workflow#void completeTask(String taskId)|void completeTask(String taskId)]] * [[:custom:api_java_workflow#void setTaskAssignee(String taskId, String assignee)|void setTaskAssignee(String taskId, String assignee)]] * [[:custom:api_java_workflow#void setTaskCategory(String taskId, String category)|void setTaskCategory(String taskId, String category)]] * [[:custom:api_java_workflow#String startProcessInstance()|String startProcessInstance()]] * [[:custom:api_java_workflow#String startProcessByMessage(String message, Map processVariables)|String startProcessByMessage(String message, Map processVariables)]] * [[:custom:api_java_workflow#String startProcessByMessage(String message, Map processVariables, String userId)|String startProcessByMessage(String message, Map processVariables, String userId)]] * [[:custom:api_java_workflow#void synchronizeActivitiWithGwClass(String processInstanceId)|void synchronizeActivitiWithGwClass(String processInstanceId)]] * [[:custom:api_java_workflow#void synchronizeActivitiWithMap(String processInstanceId, Map map)|void synchronizeActivitiWithMap(String processInstanceId, Map map)]] * [[:custom:api_java_workflow#void suspendProcessInstanceById(String processInstanceId)|void suspendProcessInstanceById(String processInstanceId)]] * [[:custom:api_java_workflow#String retrieveGwItemIdFromProcessInstanceId(String processInstanceId)|String retrieveGwItemIdFromProcessInstanceId(String processInstanceId)]] * [[:custom:api_java_workflow#String retrieveGwItemIdFromProcessInstanceId(String gwClassName, String processInstanceId)|String retrieveGwItemIdFromProcessInstanceId(String gwClassName, String processInstanceId)]] * [[:custom:api_java_workflow#String retrieveProcessInstanceIdFromGwItemId(String gwClassName, String itemId)|String retrieveProcessInstanceIdFromGwItemId(String gwClassName, String itemId)]] ===== void activateProcessInstanceById(String processInstanceId) ===== Attiva un'istanza di processo, dato il processInstanceId. In genere è usato dopo [[#void suspendProcessInstanceById(String processInstanceId)]] === Parametri === * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **void** === Throws === * [[https://www.activiti.org/javadocs/org/activiti/engine/ActivitiObjectNotFoundException.html]] - se non è possibile trovare un tale processInstance * [[https://www.activiti.org/javadocs/org/activiti/engine/ActivitiException.html]] - se l'istanza di processo è già in stato attivo. ===== boolean cancelProcessInstance(String gwClassName, String processInstanceId) ===== Delete both the Geoweb record and the processInstance inside Activiti. No permissions check. === Parametri === * **gwClassName**, String, required. Name della gwClass * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **boolean** success flag ===== boolean cancelArchivedProcessInstances(String gwClassName, List processInstanceIdList) ===== delete both the Geoweb record and the processInstance inside Activiti for every processInstanceId in the list. No permissions check === Parametri === * **gwClassName**, String, required. Name della gwClass * **processInstanceIdList**, List, required. Lista di identificativi del processo in Activiti (persistiti sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **boolean** success flag ===== boolean cancelArchivedProcessInstance(String gwClassName, String processInstanceId) ===== Delete both the Geoweb record and the historicProcessInstance inside Activiti. No permissions check === Parametri === * **gwClassName**, String, required. Name della gwClass * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **boolean** success flag ===== boolean cancelArchivedProcessInstances(String gwClassName, List processInstanceIdList) ===== Delete both the Geoweb record and the historicProcessInstance inside Activiti for every processInstanceId in the list. No permissions check === Parametri === * **gwClassName**, String, required. Name della gwClass * **processInstanceIdList**, List, required. Lista di identificativi del processo in Activiti (persistiti sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **boolean** success flag ==== void claimTask(String taskId, String userId) ==== Richiede l'assegnazione del task con taskId per l'utente userId. === Parametri === * **taskId**, String, required. Identificativo del task in Activiti * **userId**, String, required. === Return === * **void** ==== void completeTask(String taskId) ==== Completa il task con id = taskId. Il task viene completato senza controlli sull'utente === Parametri === * **taskId**, String, required. Identificativo del task in Activiti === Return === * **void** ====void completeTask(String taskId, String userId, Map taskVariables) ==== Completa il task, con l'utente dato e le variabili impostate. === Parametri === * **taskId**, String, required. Identificativo del task in Activiti * **userId**, String, required. * **variables**, Map, optional === Return === * **void** ====void setTaskAssignee(String taskId, String assignee) ==== Assegna l'attività a un determinato assegnatario. === Parametri === * **taskId**, String, required. Identificativo del task in Activiti * **assignee**, String, required. === Return === * **void** ====void setTaskCategory(String taskId, String category) ==== Assegna l'attività a un determinato assegnatario. === Parametri === * **taskId**, String, required. Identificativo del task in Activiti * **category**, String, required. === Return === * **void** ==== String startProcess(String processDefinitionKey, String userId, Map variables) ==== Avvia una nuova istanza di processo dato l'utente iniziale e le variabili iniziali impostate. Restuisce il processInstanceId del processo appena avviato. === Parametri === * **processDefinitionKey**, String, required. Identificativo del task in Activiti * **userId**, String, required. * **variables**, Map, optional === Return === * **String** il processInstanceId del processo appena avviato ==== String startProcessByMessage(String message, Map processVariables) ==== Avvia una nuova istanza di processo dato il //message// univoco ed il set di variabili di processo iniziali. === Parametri === * **message**, String, required. message univoco specificato nel file .bpmn * **variables**, Map, optional === Return === * **String** il processInstanceId del processo appena avviato ==== String startProcessByMessage(String message, Map processVariables, String userId) ==== Avvia una nuova istanza di processo dato il //message// univoco, il set di variabili di processo iniziali e l'utente che avvia il processo. funziona come String startProcessByMessage(String message, Map processVariables), ma qui si può eventualmente sovrascrivere l'utente che avvia l'istanza di processo. Se userId è omesso, di default si prova a recuperare l'utente //initiator// dall'eventuale utente in sessione. === Parametri === * **message**, String, required. message univoco specificato nel file .bpmn * **variables**, Map, optional * **userId**, String, optional. If omitted it's retrieved by sessioObject === Return === * **String** il processInstanceId del processo appena avviato ===== void suspendProcessInstanceById(String processInstanceId) ===== Sospende un'istanza di processo, dato il processInstanceId. L'attività non risulta Terminata, ma suspended secondo l'accezione Activiti === Parametri === * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **void** === Throws === * [[https://www.activiti.org/javadocs/org/activiti/engine/ActivitiObjectNotFoundException.html]] - se non è possibile trovare un tale processInstance * [[https://www.activiti.org/javadocs/org/activiti/engine/ActivitiException.html]] - se l'istanza di processo è già in stato sospesa. ==== void synchronizeActivitiWithGwClass(String processInstanceId) ==== Sincronizza tutte le variabili gwClass all'interno del processo in Activiti: verranno applicate all'istanza di processo === Parametri === * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **void** ==== void synchronizeActivitiWithMap(String processInstanceId, Map map) ==== Sincronizza tutte le variabili della mappa all'interno del processo in Activiti: verranno applicate all'istanza di processo === Parametri === * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **void** ==== String retrieveGwItemIdFromProcessInstanceId(String processInstanceId) ==== Recupera la chiave primaria del record della classe di Geoweb a partire dal processInstanceId (act_pid sulla tabella della classe di Geoweb). === Parametri === * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **String** itemId, chiave primaria del record della classe di Geoweb ==== String retrieveGwItemIdFromProcessInstanceId(String processInstanceId) ==== Recupera la chiave primaria del record della classe di Geoweb a partire dal processInstanceId (act_pid sulla tabella della classe di Geoweb). === Parametri === * **processInstanceId**, String, required. Identificativo del processo in Activiti (persistito sulla colonna **act_pid** della tabella della gwClass del gwProcess) === Return === * **String** itemId, chiave primaria del record della classe di Geoweb ==== String retrieveProcessInstanceIdFromGwItemId(String gwClassName, String itemId) ==== Recupera il processInstanceId (act_pid sulla tabella della classe di Geoweb) dalllo itemId (chiave primaria del record della classe di Geoweb) A differenza del metodo sopra, evita di recuperare in automatico la gwClass del processo, ed utilizza quella con il nome del parametro gwClassName. === Parametri === * **gwClassName**. String , required, * **itemId**, String, required. chiave primaria del record della classe di Geoweb === Return === * **String** processInstanceId, (act_pid sulla tabella della classe di Geoweb)