Pierpaolo Lombardi [
http://community.jboss.org/people/pierx83] created the discussion
"Re: Human task client on a different user GUI"
To view the discussion, visit:
http://community.jboss.org/message/626166#626166
--------------------------------------------------------------
Yes I was.
I use the TaskClient utilities. Here my code to start and to complete a task (the start
method reads the input parameters and the complete one write the output parameters). I
hope this can help you
public Object start(String user,Task task) throws Exception {
this.taskClient.start(task.getId(),user, null);
BlockingGetTaskResponseHandler handlerT = new BlockingGetTaskResponseHandler();
this.taskClient.getTask(id, handlerT);
org.jbpm.task.Task t = handlerT.getTask();
TaskData taskData = t.getTaskData();
// System.out.println("TaskData = "+taskData);
BlockingGetContentResponseHandler handlerC = new BlockingGetContentResponseHandler();
this.taskClient.getContent(taskData.getDocumentContentId(), handlerC);
Content content = handlerC.getContent();
// System.out.println("Content= "+content);
ByteArrayInputStream bais = new ByteArrayInputStream(content.getContent());
ObjectInputStream ois = new ObjectInputStream(bais);
//parameter può essere un parametro di tipo primitivo o un oggetto
//a seconda del task che esegue il cast
Object parameter =ois.readObject();
// System.out.println("parameter = "+parameter);
return parameter; //input parameter of the task
}
/**
* Complete the task execution
*/
public void complete(String user,Task task,Map<String,String> parameters){
ContentData contentData = null;
if (parameters != null) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out;
try {
out = new ObjectOutputStream(bos);
out.writeObject(parameters);
out.close();
contentData = new ContentData();
contentData.setContent(bos.toByteArray());
contentData.setAccessType(AccessType.Inline);
} catch (IOException e) {
e.printStackTrace();
}
}
BlockingTaskOperationResponseHandler responseHandler = new
BlockingTaskOperationResponseHandler();
this.taskClient.complete(task.getId(), user, contentData, responseHandler);
responseHandler.waitTillDone(5000);
}
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/626166#626166]
Start a new discussion in jBPM at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]