什么是工作流action,如何开发
发布日期:2010-4-6 信息来源:http://www.chysoft.net

一、实现描述
Action是实现指定接口org.jbpm.graph.def.ActionHandler的Java类,action可以定义在普通节点中,也可以定义在节点事件中。定义在普通节点中的action则是当前节点业务逻辑的执行体,定义在事件中的action在进入节点或离开节点时候触发。
Action开发工作流二次开发的重要部分,可以在action访问工作流实例数据和表单中的业务数据,扩展和增强工作流中的业务处理逻辑。下面列举一个结束节点进入事件的action例子:
1、开发实现接口org.jbpm.graph.def.ActionHandler的Java类FinishAction。
2、进入工作流定义界面,设置结束节点的进入事件为“net.test.FinishAction”。
3、整体保存工作流定义。

二、代码示例
package net.test

import net.business.engine.TableObject;
import net.business.engine.common.TemplateContext;
import net.jbpm.external.WorkFlowSmartForm;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.exe.Token;

public class FinishAction implements ActionHandler
{
   private static final long serialVersionUID = 1L;

   public void execute(ExecutionContext executionContext) throws Exception
   {
  Token token = executionContext.getToken();
  WorkFlowSmartForm wfsf = (WorkFlowSmartForm) token.getAssignment();
  TemplateContext context = wfsf.getTemplateContext();
  TableObject[] tables = context.getTables();
  if(tables == null)
  {
  throw new Exception("数据读取失败");
  }
  TableObject table = tables[0];
  //获取数据库的连接
  Connection conn = context.getConn();
  //通过"khqc"字段名,访问表单提交的数据
  String khqc = wfsf.getTableFieldValue(table.getFieldByName("khqc"));  
  //其他业务逻辑代码
(略)
}
}

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