minslay minslay [https://community.jboss.org/people/minslay] created the 
discussion

"getVariable and setVariable"

To view the discussion, visit: https://community.jboss.org/message/779611#779611

--------------------------------------------------------------
Hello,

I'm newbie with jBPM and I'm stuck with something I think it's easy but it 
doesn't work.

I'm trying define a process dynamically with Process API. I want to insert a 
variable into my actionNode so, I create a HashMap and I use 
kcontext.getVariable().
Now I get my variable into my actionNode and I can use it.
Then I want to modify (or create a new variable) my variable and its value. I 
don't know how to modify it and use kcontext.setVariable(); also I dont know 
how to recover that value in my java code.

Here my code


                    HashMap<String, Object> processParameters = new 
HashMap<String, Object>();
                    KnowledgeBuilder kbuilder = 
KnowledgeBuilderFactory.newKnowledgeBuilder();
                    RuleFlowProcessFactory factoryP1 = 
RuleFlowProcessFactory.createProcess("org.jbpm.Process1");

                    // My variable and value
                    processParameters.put("result",5);

                    
factoryP1.name("Process1").version("1.0").packageName("org.jbpm") 
                              .imports("java.util.HashMap")


                              // creating a new var
                              .variable("resultReceived", new 
ObjectDataType("java.lang.Integer"))

                                        .startNode(1).name("Start").done()
                                        .actionNode(2).name("Action")
                                        // I receive my variable from java Code 
with kcontext.getVariable
                                        // and modify its value (now:6)
                                        .action("java",          
"resultReceived = (Integer) kcontext.getVariable(\"result\")+1;" +
                                                            
"System.out.println(resultReceived);" +
                                        // I put my new variable with 
kcontext.setVariable 
                                                            
"kcontext.setVariable(\"resultReceived\", resultReceived);").done()
                                        // another actionNode.
                                        .actionNode(3).name("Action")
                                        
.action("java","System.out.println(\"Another Node \");").done()
                                        .endNode(4).name("End").done()
                                        // Connections
                                        .connection(1, 2)
                                        .connection(2, 3)
                                        .connection(3, 4);

                    RuleFlowProcess process1 = 
factoryP1.validate().getProcess(); 

                    kbuilder.add(ResourceFactory.newByteArrayResource(
                                        
XmlBPMNProcessDumper.INSTANCE.dump(process1).getBytes()),
                                        ResourceType.BPMN2);

                    KnowledgeBase kbase = kbuilder.newKnowledgeBase();
                    StatefulKnowledgeSession ksession = 
kbase.newStatefulKnowledgeSession();
                    ProcessInstance processInstance = 
ksession.startProcess("org.jbpm.Process1",processParameters);

                    // and now... How can I get resultReceived from 
actionNode???
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/779611#779611]

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