JBPM高级问题.

ProcessDefinition Xml-String:

String xml = "<?xml version='1.0' encoding='GBK'?>"
+" <process-definition xmlns=\"urn:jbpm.org:jpdl-3.1\" name=\"流程定义1\">"
+" <start-state name='开始'>"
+" <transition name=\"\" to=\"task1\"></transition>"
+" </start-state>"
+" <task-node name=\"task1\">"
+" <task name=\"ade\"></task>"
+" <transition name=\"\" to=\"decision1\"></transition>"
+" </task-node>"
+" <decision name=\"decision1\" expression=\"#{SP=='Y'?'true':'false'}\">"
+" <transition name=\"true\" to=\"state100\"></transition>"
+" <transition name=\"false\" to=\"state200\"></transition>"
+" </decision>"
+" <state name=\"state100\">"
+" <transition name=\"\" to=\"end1\"></transition>"
+" </state>"
+" <state name=\"state200\">"
+" <transition name=\"\" to=\"end2\"></transition>"
+" </state>"
+" <end-state name=\"end1\"></end-state>"
+" <end-state name=\"end2\"></end-state>"

+" </process-definition>";

//------------------------------------------------------
processDefinition = ProcessDefinition.parseXmlString(xml);
cxt.deployProcessDefinition(processDefinition);
instance = new ProcessInstance(processDefinition);
System.out.println("pd-id:"+processDefinition.getId()); //678,
System.out.println("pi-id:"+instance.getId()); //678,1725

//instance = cxt.getProcessInstance(4959);
Token root = instance.getRootToken();
root.signal();
ExecutionContext ec = new ExecutionContext(root);
instance.getContextInstance().setVariable("SP", "Y");
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
Node node2 = ((Transition)root.getNode().getLeavingTransitions().iterator().next()).getTo();
String xx = null;
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
List Nodelist = root.getNode().getLeavingTransitions();
for (int i = 0; i < Nodelist.size(); i++) {
Transition tran = (Transition) Nodelist.get(0);
Node node = tran.getTo();

if(node instanceof Decision){
Decision de = (Decision)node;
xx = de.execute_X(ec);
System.out.println("dec_: "+xx);
}
System.out.println(getGBK(node.getName()));
}

Result:
root::task15157
root::task15157
dec_: true
decision1

//------------------------------------------------------
instance = cxt.getProcessInstance(4959);
Token root = instance.getRootToken();
//root.signal();
ExecutionContext ec = new ExecutionContext(root);
instance.getContextInstance().setVariable("SP", "Y");
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
Node node2 = ((Transition)root.getNode().getLeavingTransitions().iterator().next()).getTo();
String xx = null;
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
List Nodelist = root.getNode().getLeavingTransitions();
for (int i = 0; i < Nodelist.size(); i++) {
Transition tran = (Transition) Nodelist.get(0);
Node node = tran.getTo();
//这里的Decision节点无法还原? 为什么呢?
if(node instanceof Decision){
Decision de = (Decision)node;
xx = de.execute_X(ec);
System.out.println("dec_: "+xx);
}
System.out.println(getGBK(node.getName()));
}

Result:
root::task14959
root::task14959
decision1
//------------------------------------------------------------------------
哦...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值