TC ONG [
https://community.jboss.org/people/devilkazuya99] created the discussion
"Re: Task Human - Parameter Mapping"
To view the discussion, visit:
https://community.jboss.org/message/729764#729764
--------------------------------------------------------------
I figured it out now.
Step 1: Create a variable in your process. (I use userComms, it's my POJO)
https://community.jboss.org/servlet/JiveServlet/showImage/2-729764-18391/...
https://community.jboss.org/servlet/JiveServlet/downloadImage/2-729764-18...
Step 2: In the Human Task Parameter Mapping, map my variable to "Content".
(I always have this problem doing this. See
https://community.jboss.org/message/729763#729763#729763
https://community.jboss.org/message/729763#729763 )
https://community.jboss.org/servlet/JiveServlet/showImage/2-729764-18392/...
https://community.jboss.org/servlet/JiveServlet/downloadImage/2-729764-18...
Step 3: [Optional] In the On Entry Action of the Human Task, I set the value of my POJO.
You can do it any way you like.
Question: is the kcontext.setVariable() necessary?
userComms = *new* UserComms();
userComms.setQuestion("Hello World~!");
kcontext.setVariable("userComms", userComms);
Step 4: Compile and run our process.
Step 5: Accessing your variable from the task's "Content"
BlockingGetTaskResponseHandler
taskResponseHandler = new BlockingGetTaskResponseHandler();
taskClient.getTask(task1.getId(), taskResponseHandler);
Task task = taskResponseHandler.getTask();
long documentContentId = task.getTaskData().getDocumentContentId();
UserComms userComms = new UserComms();
BlockingGetContentResponseHandler contentResponseHandler =
new BlockingGetContentResponseHandler();
taskClient.getContent(documentContentId,
contentResponseHandler);
Content content = contentResponseHandler.getContent();
if (content != null){
ByteArrayInputStream bais = new
ByteArrayInputStream(content.getContent());
ObjectInputStream ois;
try {
ois = new ObjectInputStream(bais);
Object obj = ois.readObject();
System.out.println("Object = " + obj.getClass()); // will
return an empty string if not mapped properly
if(obj instanceof UserComms) {
userComms =(UserComms) obj;
System.out.println(userComms.getQuestion());
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
And I got my POJO from the Content.
Happy. :)
--------------------------------------------------------------
Reply to this message by going to Community
[
https://community.jboss.org/message/729764#729764]
Start a new discussion in jBPM at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=1&...]