
Μετά, με την χρήση του workflow API (http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e10660/toc.htm) μπορούμε να χειριστούμε το payload ως στιγμιότυπο της κλάσης org.w3c.Document.
//Get the task query service
ITaskQueryService querySvc = wfSvcClient.getTaskQueryService();
Task task = querySvc.getTaskDetailsById(ctx, taskId);
Element elPayload = task.getPayloadAsElement();
if (elPayload != null && elPayload.getOwnerDocument() != null) {
Document myDoc = elPayload.getOwnerDocument();
Node currentPayload = myDoc.getElementsByTagName("payload").item(0);
}
Για να αλλάξουμε μια μεταβλητή δεν έχουμε παρά να κάνουμε τον κατάλληλο χειρισμό της XML, πχ για ένα string attribute:
Node newParam = myDoc.getElementsByTagName("attributeName");
newParam.setTextContent("newValue");
H τελική αποθήκευση του payload απαιτεί την κλήση στη μέθοδο setPayloadAsElement() καθώς και την ενημέρωση της κατάστασης του human task (πχ "APPROVE", "REJECT")
task.setPayloadAsElement((Element)currentPayload);
ITaskService taskSvc = wfSvcClient.getTaskService();
taskSvc.updateTaskOutcome(ctx, task, action);
No comments:
Post a Comment