[rules-users] Problems with result mapping for custom workitems
Mauricio Salatino
salaboy at gmail.com
Wed Apr 21 14:09:44 EDT 2010
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 <salaboy at gmail.com>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 <manuel.payet at capgemini.com
> > 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
>> rules-users at lists.jboss.org
>> 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 -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100421/044ee13f/attachment.html
More information about the rules-users
mailing list