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/Screen+shot+2012-04-13+at+1.27.17+PM.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/2-729764-18391/310-158/Screen+shot+2012-04-13+at+1.27.17+PM.png
 
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/Screen+shot+2012-04-13+at+1.29.21+PM.png
  
https://community.jboss.org/servlet/JiveServlet/downloadImage/2-729764-18392/450-113/Screen+shot+2012-04-13+at+1.29.21+PM.png
 

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&containerType=14&container=2034]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to