-
1. Re: JBPM5 Content data problem
calca Sep 8, 2011 3:16 PM (in response to sroot)Could please you share:
1) your process definition
2) how you are calling the taskClient.complete method?
Thanks
Demian
-
2. Re: JBPM5 Content data problem
sroot Sep 8, 2011 3:48 PM (in response to calca)Thanks for responding.
Process def attached to oringal post above.
My problem is even before I call taskClient.complete.
Its at the point where I retreive the Content and need to display data to the user. At that point content.getContent() I expect to return a byte array of type Map, but it is always String. It does have my Map key/value pairings and the values may themselves be another Map or even a List
This is how I get the Content:
public Content getContentForTask(Task task) {
long documentContentId = task.getTaskData().getDocumentContentId();
BlockingGetContentResponseHandler getContentResponseHandler =
new BlockingGetContentResponseHandler();taskClient.getContent(documentContentId, getContentResponseHandler);
return getContentResponseHandler.getContent();
}
-
3. Re: JBPM5 Content data problem
calca Sep 8, 2011 4:22 PM (in response to sroot)If I don't remember wrong, if you evaluate this expresion:
<targetRef>_12_ContentInput</targetRef>
<assignment>
<from xsi:type="tFormalExpression">#{transportMap}</from>
<to xsi:type="tFormalExpression">_12_ContentInput</to>
</assignment>
It is converted to string.
You could try this one:
<sourceRef>transportMap</sourceRef>
<targetRef>_12_ContentInput</targetRef>
Demian
-
4. Re: JBPM5 Content data problem
calca Sep 8, 2011 4:25 PM (in response to calca)I think in
in line 170, resolves the variable into string. I don't know why
-
5. Re: JBPM5 Content data problem
sroot Sep 8, 2011 4:43 PM (in response to calca)Hmmmm, so does that mean that you really can't have anything other than a String as a process variable if you want to be able to later retrieve and display it from the Content of a Task?
Note that I am using the WSHumanTaskHandler and in my custom task handler just before the User Task I set my Map on a resuts map and then pass the results Map when I complete the workItem:
Map<String, Object> resultsMap = new HashMap<String, Object>();
resultsMap.put("MYMAP", myMap);
resultsMap.put("OTHERSTUFF", otherStuff);
workItemManager.completeWorkItem(workItem.getId(), resultMap);
The next step is User Task and I then attemtpt to retrieve the original Map from Task Content.
-
6. Re: JBPM5 Content data problem
calca Sep 8, 2011 6:22 PM (in response to sroot)No, it does not mean so..
If you use the expresion assignment(<from xsi:type="tFormalExpression">#{transportMap}</from>), it is resolved as an string, but if you map your process variable like this
<sourceRef>transportMap</sourceRef>
<targetRef>_12_ContentInput</targetRef>
I think should work.
You can check for example here:
To see how that parameters to the user task are sent.
For example,
<dataInputAssociation>
<sourceRef>emergency</sourceRef>
<targetRef>_6_emergencyInput</targetRef>
</dataInputAssociation>
You can also check this post:
http://dcalca.wordpress.com/2011/05/06/variables-in-jbpm5-human-tasks/
Demian
-
7. Re: JBPM5 Content data problem
sroot Sep 8, 2011 7:00 PM (in response to calca)Thanks Demian!
That was extremley helpful.
I have it working now.