Sorry, I didn't see that you are using it. <br>Can you show us how your WorkModel class looks like?<br><br><div class="gmail_quote">On Wed, Apr 21, 2010 at 2:06 PM, Mauricio Salatino <span dir="ltr"><<a href="mailto:salaboy@gmail.com">salaboy@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">the completeWorkItem method receives a Map with the results. You need to populate that map, in order the mapping works.<div>
<div></div><div class="h5"><br><br><br><div class="gmail_quote">On Wed, Apr 21, 2010 at 1:22 PM, PAYET, Manuel <span dir="ltr"><<a href="mailto:manuel.payet@capgemini.com" target="_blank">manuel.payet@capgemini.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hello everyone, I have a problem using result mapping in custom workitems when I try to set an attribute of an object as one of the result:<br>
I make the following mapping in Result Mapping of my workitem:<br>
<br>
Parameter Variable<br>
message workmodel.message<br>
<br>
<br>
and all I have is<br>
<br>
Could not find variable scope for variable workmodel.message<br>
when trying to complete Work Item workitem_test<br>
Continuing without setting variable.<br>
<br>
<br>
I hope, someone can help me, I tried all that I could think about...<br>
you will find below all my project, sorry for the long post...:<br>
<br>
<br>
<br>
/forum/src/main/java/mpayet/test/forum/App.java<br>
=======================================================================<br>
package mpayet.test.forum;<br>
<br>
import java.util.HashMap;<br>
import java.util.Map;<br>
<br>
import org.drools.KnowledgeBase;<br>
import org.drools.KnowledgeBaseFactory;<br>
import org.drools.builder.KnowledgeBuilder;<br>
import org.drools.builder.KnowledgeBuilderError;<br>
import org.drools.builder.KnowledgeBuilderErrors;<br>
import org.drools.builder.KnowledgeBuilderFactory;<br>
import org.drools.builder.ResourceType;<br>
import org.drools.io.ResourceFactory;<br>
import org.drools.runtime.StatefulKnowledgeSession;<br>
<br>
import workDefinitions.WorkitemTest;<br>
import workDefinitions.Workmodel;<br>
<br>
/**<br>
* Hello world!<br>
*<br>
*/<br>
public class App {<br>
public static void main(String[] args) throws Exception {<br>
System.out.println("Hello World!");<br>
KnowledgeBase kbase = readKnowledgeBase();<br>
StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();<br>
final Map<String, Object> map = new HashMap<String, Object>();<br>
map.put("workmodel", new Workmodel());<br>
session.getWorkItemManager().registerWorkItemHandler("workitem_test", new WorkitemTest(session));<br>
session.startProcess("flow", map);<br>
}<br>
<br>
private static KnowledgeBase readKnowledgeBase() throws Exception {<br>
<br>
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory<br>
.newKnowledgeBuilder();<br>
kbuilder.add(ResourceFactory.newClassPathResource("flow.rf"),<br>
ResourceType.DRF);<br>
<br>
KnowledgeBuilderErrors errors = kbuilder.getErrors();<br>
if (errors.size() > 0) {<br>
for (KnowledgeBuilderError error : errors) {<br>
System.err.println(error);<br>
}<br>
throw new IllegalArgumentException("Could not parse knowledge.");<br>
}<br>
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();<br>
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br>
<br>
return kbase;<br>
}<br>
}<br>
=======================================================================<br>
<br>
<br>
<br>
<br>
/forum/src/main/java/workDefinitions/WorkitemTest.java<br>
=======================================================================<br>
package workDefinitions;<br>
<br>
import java.util.HashMap;<br>
import java.util.Map;<br>
<br>
import org.drools.runtime.StatefulKnowledgeSession;<br>
import org.drools.runtime.process.WorkItem;<br>
import org.drools.runtime.process.WorkItemHandler;<br>
import org.drools.runtime.process.WorkItemManager;<br>
<br>
public class WorkitemTest implements WorkItemHandler {<br>
<br>
final StatefulKnowledgeSession session;<br>
<br>
public WorkitemTest(final StatefulKnowledgeSession session) {<br>
this.session = session;<br>
}<br>
<br>
public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {<br>
<br>
}<br>
<br>
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {<br>
<br>
final Map<String, Object> mapResult = new HashMap<String, Object>();<br>
mapResult.put("message", "message");<br>
mapResult.put("nombre", 1);<br>
manager.completeWorkItem(workItem.getId(), mapResult);<br>
}<br>
}<br>
=======================================================================<br>
<br>
<br>
<br>
<br>
<br>
/forum/src/main/java/workDefinitions/Workmodel.java<br>
=======================================================================<br>
package workDefinitions;<br>
<br>
public class Workmodel {<br>
private String message;<br>
<br>
public String getMessage() {<br>
return message;<br>
}<br>
<br>
public void setMessage(String message) {<br>
this.message = message;<br>
}<br>
<br>
}<br>
=======================================================================<br>
<br>
<br>
<br>
<br>
<br>
/forum/src/main/java/META-INF/DefinitionsWorkitem.conf<br>
=======================================================================<br>
import org.drools.process.core.datatype.impl.type.StringDataType;<br>
import org.drools.process.core.datatype.impl.type.IntegerDataType;<br>
<br>
[<br>
// exemple de workitem<br>
[<br>
"name" : "workitem_test",<br>
"parameters" : [<br>
"typeObjet" : new StringDataType(),<br>
"nombre" : new IntegerDataType()<br>
],<br>
"displayName" : "workitem test",<br>
"icon" : "icons/icone_service.gif"<br>
]<br>
<br>
]<br>
=======================================================================<br>
<br>
<br>
<br>
<br>
<br>
/forum/src/main/java/flow.rf<br>
=======================================================================<br>
<?xml version="1.0" encoding="UTF-8"?><br>
<process xmlns="<a href="http://drools.org/drools-5.0/process" target="_blank">http://drools.org/drools-5.0/process</a>"<br>
xmlns:xs="<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>"<br>
xs:schemaLocation="<a href="http://drools.org/drools-5.0/process" target="_blank">http://drools.org/drools-5.0/process</a> drools-processes-5.0.xsd"<br>
type="RuleFlow" name="flow" id="flow" package-name="com.mpayet.test" routerLayout="1" ><br>
<br>
<header><br>
<imports><br>
<import name="workDefinitions.Workmodel" /><br>
</imports><br>
<variables><br>
<variable name="workmodel" ><br>
<type name="org.drools.process.core.datatype.impl.type.ObjectDataType" className="workDefinitions.Workmodel" /><br>
</variable><br>
</variables><br>
</header><br>
<br>
<nodes><br>
<actionNode id="13" name="affichage variable" x="16" y="176" width="161" height="48" ><br>
<action type="expression" dialect="mvel" >var model =(Workmodel)context.getVariable("workmodel")<br>
System.out.println(model.message)</action><br>
</actionNode><br>
<end id="8" name="End" x="72" y="256" width="48" height="48" /><br>
<start id="1" name="Start" x="72" y="16" width="48" height="48" /><br>
<workItem id="20" name="workitem test" x="46" y="97" width="100" height="48" ><br>
<work name="workitem_test" ><br>
<parameter name="nombre" ><br>
<type name="org.drools.process.core.datatype.impl.type.IntegerDataType" /><br>
</parameter><br>
<parameter name="typeObjet" ><br>
<type name="org.drools.process.core.datatype.impl.type.StringDataType" /><br>
</parameter><br>
</work><br>
<mapping type="out" from="message" to="workmodel.message" /><br>
</workItem><br>
</nodes><br>
<br>
<connections><br>
<connection from="20" to="13" /><br>
<connection from="13" to="8" /><br>
<connection from="1" to="20" /><br>
</connections><br>
<br>
</process><br>
=====================================================================<br>
<br>
<br>
<br>
Thank you very much if you took the time to think about my problem,<br>
Manuel PAYET<br>
<br>
<br>
<br>
<br>
<br>
<br>
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is<br>
intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to<br>
read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message<br>
in error, please notify the sender immediately and delete all copies of this message.<br>
<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote></div><br><br clear="all"><br></div></div><font color="#888888">-- <br> - <a href="http://salaboy.wordpress.com" target="_blank">http://salaboy.wordpress.com</a><br> - <a href="http://www.jbug.com.ar" target="_blank">http://www.jbug.com.ar</a><br>
- Salatino "Salaboy" Mauricio -<br>
</font></blockquote></div><br><br clear="all"><br>-- <br> - <a href="http://salaboy.wordpress.com">http://salaboy.wordpress.com</a><br> - <a href="http://www.jbug.com.ar">http://www.jbug.com.ar</a><br> - Salatino "Salaboy" Mauricio -<br>