Perché e quando effettuare questa attività
Le attività partecipanti o esclusivamente human task sono assegnate a diversi utenti dell'azienda mediante gli elementi di lavoro. Le attività partecipanti e gli elementi di lavoro associati vengono creati, ad esempio, quando un processo passa ad un'attività staff.
Uno dei potenziali proprietari richiede l'attività associata all'elemento di lavoro.
Questo utente è responsabile della fornitura di informazioni rilevanti e del completamento dell'attività.
Procedura di questa attività
- Elencare le attività che appartengono a un utente collegato e pronte per essere utilizzate.
QueryResultSet result =
task.query("TASK.TKIID",
"TASK.STATE = TASK.STATE.STATE_READY AND
(TASK.KIND = TASK.KIND.KIND_PARTICIPATING OR
TASK.KIND = TASK.KIND.KIND_HUMAN)AND
WORK_ITEM.REASON =
WORK_ITEM.REASON.REASON_POTENTIAL_OWNER",
(String)null, (Integer)null, (TimeZone)null);
Questa operazione restituisce una serie di risultati query che contiene le attività che possono essere elaborate dall'utente connesso.
- Richiedere le attività su cui lavorare.
if (result.size() > 0)
{
result.first();
TKIID tkiid = (TKIID) result.getOID(1);
ClientObjectWrapper input = task.claim(tkiid);
DataObject taskInput = null ;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
taskInput = (DataObject)input.getObject();
// leggere i valori
...
}
}
Una volta richiesta l'attività, viene restituito il messaggio di input dell'attività stessa.
- Una volta terminato il lavoro sull'attività, completare quest'ultima.
L'attività può essere completata correttamente o con un messaggio di errore. Se l'attività ha esito positivo, viene inoltrato un messaggio di output. Se l'attività non è riuscita correttamente, viene restituito un messaggio di errore. Per queste azioni, è necessario creare i messaggi appropriati.
- Per completare correttamente l'attività, creare un messaggio di output.
ClientObjectWrapper output =
task.createOutputMessage(tkiid);
DataObject myMessage = null ;
if ( output.getObject()!= null && output.getObject() instanceof DataObject )
{
myMessage = (DataObject)output.getObject();
//impostare le parti nel messaggio, ad esempio, un numero di ordine
myMessage.setInt("OrderNo", 4711);
}
//completare l'attività
task.complete(tkiid, output);
Questa azione imposta un messaggio di output contenente il numero dell'ordine. l'attività viene collocata in stato terminato.
- Per completare l'attività quando si verifica un errore, creare un
messaggio di errore.
//richiamare gli errori modellati per l'attività
List faultNames = task.getFaultNames(tkiid);
//creare un messaggio del tipo appropriato
ClientObjectWrapper myFault =
task.createFaultMessage(tkiid, (String)faultNames.get(0));
// impostare le parti nel messaggio di errore, ad esempio, un numero di ordine
DataObject myMessage = null ;
if ( myFault.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)myFault.getObject();
//impostare le parti nel messaggio, ad esempio, un nome cliente
myMessage.setInt("error",1304);
}
task.complete (tkiid, (String)faultNames.get(0), myFault);
Questa azione imposta un messaggio di errore contenente il codice errore.
L'attività viene collocata in stato non riuscito.