Un elemento de trabajo representa la asignación de un objeto a un
usuario o a un grupo de usuarios para un motivo en particular.
El objeto es habitualmente una instancia de actividad de personal, una
instancia de proceso o una tarea humana.
Los motivos se derivan del rol que el usuario tenga para una actividad o tarea.
Una actividad o tarea puede tener varios elementos de trabajo, porque un
usuario puede tener distintos roles en asociación con la actividad o la tarea,
y se crea un elemento de trabajo para cada uno de estos roles.
Durante la vida de una instancia de actividad o una instancia de tarea,
el conjunto de personas asociadas con el objeto puede cambiar, por ejemplo,
porque una persona está de vacaciones, se han contratado otras personas o la
carga de trabajo tiene que distribuirse de forma diferente.
Para que puedan realizarse estos cambios, puede desarrollar aplicaciones para crear, suprimir o transferir elementos de trabajo.
Las
acciones que se pueden realizar para gestionar elementos de trabajo dependen
del rol que tiene el usuario, por ejemplo, un administrador puede crear,
suprimir y transferir elementos de trabajo, pero el propietario de tareas sólo
puede transferir elementos de trabajo.
- Crear un elemento de trabajo.
// consultar la instancia de tarea para la que se ha de especificar
// un administrador adicional
QueryResultSet result = task.query("TASK.TKIID",
"TASK.NAME='CustomerOrder'",
null, null, null);
if (result.size() > 0)
{
result.first();
// crear el elemento de trabajo
task.createWorkItem((TKIID)(result.getOID(1)),
WorkItem.REASON_ADMINISTRATOR,"Smith");
}
Esta acción crea un elemento de trabajo para el
usuario Smith que tiene el rol de administrador.
- Eliminar un elemento de trabajo.
// consultar la instancia de tarea de la que se suprimirá un elemento de trabajo
QueryResultSet result = task.query("TASK.TKIID",
"TASK.NAME='CustomerOrder'",
null, null, null);
if (result.size() > 0)
{
result.first();
// eliminar el elemento de trabajo
task.deleteWorkItem((TKIID)(result.getOID(1)),
WorkItem.REASON_READER,"Smith");
}
Esta acción suprime el elemento de trabajo para el
usuario Smith que tiene el rol de lector.
- Transferir un elemento de trabajo.
// consultar la tarea que se ha de volver a planificar
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'",
null, null, null);
if (result.size() > 0)
{
result.first();
// transferir el elemento de trabajo del usuario Miller al usuario Smith,
// para que Smith pueda trabajar en la tarea
task.transferWorkItem((TKIID)(result.getOID(1)),
WorkItem.REASON_POTENTIAL_OWNER,"Miller","Smith");
}
Esta acción transfiere el elemento de
trabajo al usuario Smith para que pueda trabajar en el mismo.