1. 建立Person类
package com.sample;
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. 建立HelloService类,只做一件事件,打印传入的参数
package com.sample;
public class HelloService {
private static final HelloService INSTANCE = new HelloService();
public static HelloService getInstance() {
return INSTANCE;
}
public void sayHello(String name) {
System.out.println("Hello " + name);
}
}
3. 通过可视化图形控件画流程图,包括一个开始节点,一个结束节点,一个Script Task
1)绘制节点
修改流程Id名称为com.sample.bpmn.HelloService,调用流程是通过Id来调用的
鼠标点在图形化界面的空白处,更改在Properties出现的Id的值
2)加入流程变量,鼠标点在图形化界面的空白处,在Properties出现的流程整体信息,
3)设置Script Task的脚本
选中Hello节点,在Properties中可以修改节点的信息,添加脚本
引入HelloService类
加入脚本
注意这里是java语言,需要以分号结束,缺少会报错的
4)编写测试类
package com.sample;
import java.util.HashMap;
import java.util.Map;
import org.drools.runtime.StatefulKnowledgeSession;
import org.jbpm.test.JbpmJUnitTestCase;
import org.junit.Test;
public class TestHelloService extends JbpmJUnitTestCase {
@Test
public void testProcess() {
StatefulKnowledgeSession ksession = createKnowledgeSession("HelloJBPM.bpmn");
Map<String, Object> params = new HashMap<String, Object>();
params.put("person", new Person("krisv"));
ksession.startProcess("com.sample.bpmn.HelloService", params);
}
}
5)运行测试类,在控制台看到输出结果
END