承元工作流中如何实现条件判断
发布日期:2010-4-9 信息来源:http://www.chysoft.net

一、实现描述
在条件节点中嵌入条件选择的代码,通过条件计算返回最终的路由,从而实现在工作流的流转中根据计算自动到指定的目标节点。
1、在工作流定义定添加一个条件节点,二个以上的目标节点。
2、连接条件节点到多个目标节点,设置每个路由连线的名称(很重要,代码开发中将引用该名称
3、设置条件节点的“条件计算JAVA类”。

二、代码示例
import net.business.engine.common.TemplateContext;
import net.jbpm.external.WorkFlowSmartForm;
import net.sysplat.access.Authentication;
import net.sysplat.common.Operator;

import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;
import org.jbpm.graph.node.DecisionHandler;

/**
 * 自动控制流程提交的下一个任务节点
 *
 */
public class JuesuanDecision implements DecisionHandler
{
public String decide(ExecutionContext executionContext) throws Exception
{
  String taskname = "";
  Token token = executionContext.getToken();
  TemplateContext context = ((WorkFlowSmartForm) token.getAssignment()).getTemplateContext();
  Operator user = Authentication.getUserFromSession(context.getRequest());

  if(user.isBelongToGroup(8)) 
{
  taskname = "送领导审核";

else if (user.isBelongToGroup(25) || user.isBelongToGroup(9)) 
{
  taskname = "送集团负责人审核";

else
{
taskname = "送分公司负责人审批";
}

// taskname名称必须是和条件节点相连的目标节点的连线名称
return taskname;
}
}

三、简易条件路由
不用设置条件节点的Java类,点击每个路由连线,属性中显示条件设置,我们可以采用简单的表达式进行处理,如:tian>3,其中tian代表的是表单中的绑定了数据库表字段的表单元素的名称。

粤ICP备11095012号-1
Copyright 2005-2017 深圳市承元软件技术有限公司