Las actividades de personal de procesos de empresa se asignan a distintas personas
de la organización mediante elementos de trabajo. Cuando se inicia un proceso, se crean elementos de
trabajo para los propietarios potenciales. Uno de estos propietarios reclama la actividad.
Esta persona se encarga de proporcionar la información relevante y
completar la actividad.
- Enumere las actividades que pertenecen a una persona que ha iniciado la
sesión y que están preparadas para utilizarse:
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",
null, null, null);
Esta acción devuelve un conjunto de resultados
de consulta que contiene las actividades con las que puede trabajar la persona
que ha iniciado la sesión.
- Reclame la actividad en la que se va a trabajar:
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();
// leer los valores
...
}
}
Cuando se reclama la actividad, se devuelve el
mensaje de entrada de la actividad.
- Cuando haya acabado el trabajo en la actividad, finalice la actividad. La actividad puede completarse satisfactoriamente o con un mensaje de error.
Si la actividad se realiza satisfactoriamente se pasa un mensaje de salida. Si no se realiza
satisfactoriamente la actividad, se pone en el estado con anomalía o detenida y se pasa un mensaje de
error.
Deberá crear los mensajes adecuados para estas acciones. Cuando cree el mensaje, debe especificar el nombre del tipo de mensaje, para que contenga la definición del mensaje.
- Para completar la actividad correctamente, cree un mensaje de
salida.
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();
//establecer las partes del mensaje, por ejemplo, un número de pedido
myMessage.setInt("OrderNo", 4711);
}
//completar la actividad
process.complete(aiid, output);
Esta acción
establece un mensaje de salida que contiene el número de pedido.
- Para completar la actividad cuando se produce un error, cree un
mensaje de error.
//recuperar los errores diseñados para la actividad de personal
List faultNames = process.getFaultNames(aiid);
//crear un mensaje del tipo adecuado
ClientObjectWrapper myFault =
process.createMessage(aiid, faultNames.get(0));
// establecer las partes del mensaje de error, por ejemplo, un número de error
DataObject myMessage = null ;
if ( myFault.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)myFault.getObject();
//establecer las partes del mensaje, por ejemplo, un nombre de cliente
myMessage.setInt("error",1304);
}
process.complete(aiid, (String)faultNames.get(0), myFault);
Esta acción establece la actividad en el estado con anomalía o detenida.
Si el parámetro continueOnError de la actividad del modelo de
proceso se establece en true, se pone la actividad en el estado con anomalía y continúa
la navegación. Si el parámetro continueOnError se establece
en false, se pone la actividad en el estado detenida. En este estado
se puede reparar la actividad utilizando force terminate o force retry.