首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

调度JBPM 流程

2012-10-26 
部署JBPM 流程JBPM流程开发完成之后,首先需要部署流程,才可以运行。/* package com.ibm.cdl.scst.servicei

部署JBPM 流程
JBPM流程开发完成之后,首先需要部署流程,才可以运行。

/* package com.ibm.cdl.scst.service;import org.apache.log4j.Logger;import org.jbpm.JbpmContext;import org.jbpm.JbpmException;import org.jbpm.graph.def.ProcessDefinition;import org.springmodules.workflow.jbpm31.JbpmCallback;import com.ibm.cdl.scst.BaseTestCase;public class ProcessDefinitionDeploymentTest extends BaseTestCase {static Logger logger = Logger.getLogger(ProcessDefinitionDeploymentTest.class);private ProcessService processService;/* * 注意流程间的顺序: 子流程在前, 父流程在后;  * 此处的名字对应于在Spring为流程定义所定义的Bean的名字 */private String [] processDefinitionBeanNames = { //please make sure the order"subSunsetProcessDefinition","systemSunsetProcessDefinition"};public void setProcessService(ProcessService processService) {this.processService = processService;}public void testDeploymentOnly() {logger.debug("Start deploying the process definition....");deployDefinitionByNames(processDefinitionBeanNames);this.setComplete();}/** * 对给定的流程进行发布 * <p> * <strong>注意:</strong> 目前使用procesService的deployProcess时出现获取不到当前context的情况, 因此采用此方式加以实现; * </p>  *  * @param defNames * 为待发布流程所定义的Spring Bean的名字 * @return流程定义发布结果 */private Boolean deployDefinitionByNames(final String [] defNames){return (Boolean)processService.execute(new JbpmCallback(){public Object doInJbpm(JbpmContext context) throws JbpmException {for(int i = 0; i < defNames.length; i ++){ProcessDefinition pdf = (ProcessDefinition) getApplicationContext().getBean(defNames[i],ProcessDefinition.class);try {context.getGraphSession().deployProcessDefinition(pdf);} catch (Exception e) {if(logger.isDebugEnabled()){logger.debug("Deploy definition failed. ", e);}return Boolean.FALSE;}logger.debug("Deploying the process definition: " + defNames[i]);}return Boolean.TRUE;}});}}

热点排行