Anlass und Zeitpunkt für die Ausführung dieser Task
Teilnehmende oder reine Benutzertasks werden durch Arbeitselemente
verschiedenen Personen in Ihrem Unternehmen zugeordnet. Teilnehmende Tasks und
die zugeordneten Arbeitselemente werden beispielsweise erstellt, wenn ein Prozess
eine bestimmte Staff-Aktivität aufruft. Einer der potenziellen Eigner
beansprucht die dem Arbeitselement zugeordnete Task.
Diese Person ist dafür zuständig, die relevanten Informationen
bereitzustellen und die Task abzuschließen.
Erforderliche Schritte für diese Task
- Listen Sie die einer angemeldeten Person zugeordneten Tasks auf,
die zum Bearbeiten bereit sind.
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",
null, null, null);
Diese Aktion gibt ein Abfrageergebnis zurück,
in dem die Tasks enthalten sind, die von der angemeldeten Person bearbeitet
werden können.
- Beanspruchen Sie die zu bearbeitende Task.
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();
// Lesen der Werte
...
}
}
Wenn die Task beansprucht ist, wird die Eingabenachricht
der Task zurückgegeben.
- Beenden Sie die Task, nachdem ihre Bearbeitung abgeschlossen ist.
Die
Task kann erfolgreich oder mit einer Fehlernachricht beendet werden. Ist die Task
erfolgreich beendet, wird eine Ausgabenachricht übergeben. Ist die Task nicht
erfolgreich, wird eine Fehlernachricht übergeben. Sie müssen die entsprechenden
Nachrichten für diese Aktionen erstellen.
- Erstellen Sie eine Ausgabenachricht für die erfolgreiche Beendigung der Task.
ClientObjectWrapper output =
task.createOutputMessage(tkiid);
DataObject myMessage = null ;
if ( output.getObject()!= null && output.getObject() instanceof DataObject )
{
myMessage = (DataObject)output.getObject();
// Festlegen der Teile in der Nachricht (z. B. eine Bestellnummer)
myMessage.setInt("Bestellnr", 4711);
}
// Beenden der Task
task.complete(tkiid, output);
Diese Aktion legt
eine Ausgabenachricht fest, die die Bestellnummer enthält. Die Task wird in
den Status für Fertigstellung versetzt.
- Erstellen Sie eine Fehlernachricht für die Beendigung einer Task nach Auftreten eines Fehlers.
// Abrufen der für die Task modellierten Fehler
List faultNames = task.getFaultNames(tkiid);
// Erstellen einer Nachricht des gewünschten Typs
ClientObjectWrapper myFault =
task.createFaultMessage(tkiid, (String)faultNames.get(0));
// Festlegen der Teile in der Fehlernachricht (z. B. eine Fehlernummer)
DataObject myMessage = null ;
if ( myFault.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)myFault.getObject();
// Festlegen der Teile in der Nachricht (z. B. ein Kundenname)
myMessage.setInt("Fehler",1304);
}
task.complete(tkiid, (String)faultNames.get(0), myFault);
Diese Aktion definiert eine Fehlernachricht, die den Fehlercode enthält.
Die Task wird in den Fehlschlagstatus versetzt.