Le attività staff sono assegnate a diversi utenti dell'azienda mediante gli elementi di lavoro. Quando un processo viene avviato, vengono creati degli elementi di lavoro per i potenziali proprietari.
Perché e quando effettuare questa attività
Un potenziale proprietario richiede l'attività. 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 =
process.query("ACTIVITY.AIID",
"ACTIVITY.STATE = ACTIVITY.STATE.STATE_READY AND
ACTIVITY.KIND = ACTIVITY.KIND.KIND_STAFF 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();
AIID aiid = (AIID) result.getOID(1);
ClientObjectWrapper input = process.claim(aiid);
DataObject activityInput = null ;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
activityInput = (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. In caso contrario, l'attività passa nello stato di errore e viene inviato un messaggio di errore. Per queste azioni, è necessario creare i messaggi appropriati. Quando si crea un messaggio, è necessario specificare il nome del tipo di messaggio, in modo tale che contenga la definizione del messaggio.
- Per completare correttamente l'attività, creare un messaggio di output.
ActivityInstanceData activity = process.getActivityInstance(aiid);
ClientObjectWrapper output =
process.createMessage(aiid, activity.getOutputMessageTypeName());
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à
process.complete(aiid, output);
Questa azione imposta un messaggio di output contenente il numero dell'ordine.
- Per completare l'attività quando si verifica un errore, creare un
messaggio di errore.
//richiamare gli errori modellati per l'attività di staff
List faultNames = process.getFaultNames(aiid);
//creare un messaggio del tipo appropriato
ClientObjectWrapper myFault =
process.createMessage(aiid, 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);
}
process.complete(aiid, (String)faultNames.get(0), myFault);
Questa azione imposta l'attività in stato non riuscito o arrestato. Se il parametro continueOnError dell'attività nel modello di processo viene impostata su true, l'attività viene posizionata in stato non riuscito e la navigazione continua. Se il parametro continueOnError viene impostato su
false e l'errore non viene rilevato nell'ambito circostante, l'attività viene arrestata. In questo stato l'attività può essere riparata utilizzando i comandi per forzare l'arresto o ritentare.