本人E文VeryVeryPoor,又是刚刚开始学习JBPM工作流引擎,对原文及概念等理解不当的地方,请网友不吝赐教,吾将及时修改和更正。
本文仅是本人自己学习JBPM,对JBPM指南的学习理解过程。
还望可以对入门者有所帮助。共享之。
需要中英文对照Word文档者请联系:gutengcom@hotmail.com或留下邮件地址。
3.3上下文环境 例子:业务变量
业务变量包括了在业务执行期间的上下文环境信息。业务变量是与
java.util.Map相似的变量到值的映射,是java objects.对象。业务变量作为业务实例的被持久化的一部分。为了保持事情的简单性,在例子中我们仅展示在工作时的使用的API,没有持久化。
更多关于变量的信息请参考jBPM的Chapter 8, Context。
/*
这个例子也是从hello world process 业务启动。
这次甚至没有修改。
*/
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state>" +
" <transition to='s' />" +
" </start-state>" +
" <state name='s'>" +
" <transition to='end' />" +
" </state>" +
" <end-state name='end' />" +
"</process-definition>"
);
ProcessInstance processInstance =
new ProcessInstance(processDefinition);
/*
为正在工作的业务变量从业务实例上取得上下文实例。
*/
ContextInstance contextInstance =
processInstance.getContextInstance();
/*
在业务离开启始状态前,我们将设置业务变量到业务实例的上下文环境中。
*/
contextInstance.setVariable("amount", new Integer(500));
contextInstance.setVariable("reason", "i met my deadline");
/*
从现在开始,这些变量和业务实例关联起来。现在,业务变量是可以取得的,是由用户通过API代码展示在这,
*/
processInstance.signal();
/*
这些变量通过上下文实例可以取得。
*/
assertEquals(new Integer(500),
contextInstance.getVariable("amount"));
assertEquals("i met my deadline",
contextInstance.getVariable("reason"));
待续……