Durante il ciclo di vita di un'istanza di attività, la serie di utenti associati all'oggetto può cambiare, ad esempio un utente è in vacanza, vengono assunte nuovi impiegati o il carico di lavoro deve essere distribuito in modo diverso. Per consentire queste modifiche, è possibile sviluppare le applicazioni per creare, cancellare o trasferire gli elementi di lavoro.
Perché e quando effettuare questa attività
Un elemento di lavoro rappresenta l'assegnazione di un oggetto ad un utente o un gruppo di utenti per un motivo particolare. L'oggetto è in genere un'istanza di attività staff, un'istanza di processo o un human task. I motivi sono derivati dal ruolo che l'utente ha per un'attività. Un'attività può disporre di più elementi di lavoro, poiché un utente può avere diversi ruoli in relazione all'attività e viene creato un elemento di lavoro per ciascuno di questi ruoli.
Le azioni che possono essere effettuate per gestire gli elementi di lavoro dipendono dal ruolo dell'utente, ad esempio, un amministratore può creare, eliminare e trasferire gli elementi di lavoro, ma il proprietario dell'attività può trasferire solo gli elementi di lavoro.
Procedura di questa attività
- Creare un elemento di lavoro.
// eseguire la query dell'istanza dell'attività per cui è necessario specificare
// è necessario specificare un amministratore
QueryResultSet result = task.query("TASK.TKIID",
"TASK.NAME='CustomerOrder'",
(String)null, (Integer)null,
(TimeZone)null);
if ( result.size() > 0)
{
result.first();
// creare l'elemento di lavoro
task.createWorkItem((TKIID)(result.getOID(1)),
WorkItem.REASON_ADMINISTRATOR,"Smith");
}
Questa azione crea un elemento di lavoro per l'utente Smith che dispone del ruolo di amministratore.
- Cancellare un elemento di lavoro.
// eseguire la query dell'istanza dell'attività per cui è necessario cancellare
un elemento di lavoro
QueryResultSet result = task.query("TASK.TKIID",
"TASK.NAME='CustomerOrder'",
(String)null, (Integer)null,
(TimeZone)null);
if ( result.size() > 0)
{
result.first();
// cancellare l'elemento di lavoro
task.deleteWorkItem((TKIID)(result.getOID(1)),
WorkItem.REASON_READER,"Smith");
}
Questa azione elimina l'elemento di lavoro per l'utente Smith che dispone del ruolo di amministratore.
- Trasferire un elemento di lavoro.
// eseguire la query dell'attività da ripianificare
QueryResultSet result =
task.query("DISTINCT TASK.TKIID",
"TASK.NAME='CustomerOrder' AND
TASK.STATE=TASK.STATE.STATE_READY AND
WORK_ITEM.REASON=WORK_ITEM.REASON.REASON_POTENTIAL_OWNER AND
WORK_ITEM.OWNER_ID='Miller'",
(String)null, (Integer)null, (TimeZone)null);
if ( result.size() > 0)
{
result.first();
// trasferire l'elemento di lavoro dall'utente Miller all'utente Smith
// in modo che Smith possa lavorare sull'attività
task.transferWorkItem((TKIID)(result.getOID(1)),
WorkItem.REASON_POTENTIAL_OWNER,"Miller","Smith");
}
In questo modo, si trasferisce l'elemento di lavoro all'utente Smith affinché possa lavorare su di esso.