承元OA中如何实现流程节点的跳转
发布日期:2010-10-1 信息来源:http://www.chysoft.net

工作流跳转的条件与组织架构、表单实例数据(如:财务审批的金额、请假流程的请假天数等)、工作流的实例数据等相关。实现跳转的具体定义操作如下
一、工作流中定义条件节点、目标节点和路由连线
1、 在工作流定义定添加一个条件节点,二个以上的目标节点。
2、 连接条件节点到多个目标节点,设置每个路由连线的名称(很重要,代码开发中将引用该名称)

二、条件设置
1、在每条路由连线上设置条件
这种模式适合于简单的使用流程和表单数据进行判断
点击每个路由连线,属性中显示条件设置,我们可以采用简单的表达式进行处理,如:tian>3,其中tian代表的是表单中的绑定了数据库表字段的表单元素的名称;可以使用&&、、||等符号连接多个条件,如果是浮点类型,采用如:jine>2000.00表示。
2、通过组织架构进行判断
将net.chysoft.wf.JudgeRouteAction(通用代码类)设置在条件节点的“条件”属性上,同时对不同的路由进行权限设置,可以按照部门、用户、角色等进行授权。
3、通过工作流接口开发实现
代码示例:
package net.test;
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
{
 //1、获取工作流对象和表单相关对象
Token token = executionContext.getToken();
 WorkFlowSmartForm wfsf = (WorkFlowSmartForm) token.getAssignment();
 TemplateContext context = wfsf.getTemplateContext();
 TableObject[] tables = context.getTables();
//2、获取用户对象
Operator user = Authentication.getUserFromSession(context.getRequest());
//3、具体代码运算(略)
return 路由的名称(必须是条件节点连接的路由)
}
}
将net.test .JuesuanDecision设置在条件节点的“条件”属性上,保存工作流定义即可。

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