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