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&...]