我转一个请假流程实例的全部!及详细代码!很有代表性。

流程定义

<?xml version="1.0" encoding="UTF-8"?>

<process-definition
  xmlns="urn:jbpm.org:jpdl-3.1"  name="MyRequest">
   
  <start-state name="SS_Request">
      <transition name="" to="TN_WriteRequest"></transition>
   </start-state>

   <task-node name="TN_WriteRequest">
      <task name="Task_WriteRequest">
         <controller>
            <variable name="dayCount" access="read,write,required"></variable>
         </controller>
         <assignment class="com.myrequest.task.WriteRequestAssignmentHandler"></assignment>
      </task>
      <transition name="Tr_WriteLeave" to="Fork_request">
         <action name="Ac_WriteLeave" class="com.myrequest.action.WriteLeaveActionHandler"></action>
      </transition>
   </task-node>

   <fork name="Fork_request">
      <transition name="Tr_Cancel" to="TN_RequesterCancel"></transition>
      <transition name="Tr_Request" to="Deci_IsChiefHere">
         <action name="Ac_GetChiefState" class="com.myrequest.action.GetChiefStateActionHandler"></action>
      </transition>
   </fork>

   <decision name="Deci_IsChiefHere">
      <handler class="com.myrequest.decision.IsChiefHereDecisionHandler"/>
      <transition name="Tr_Chief" to="TN_ChiefDecide"></transition>
      <transition name="Tr_Boss" to="TN_BossDecide"></transition>
   </decision>

   <task-node name="TN_RequesterCancel">
      <task name="Task_CancelRequest">
         <assignment class="com.myrequest.task.CancelRequestAssignmentHandler"></assignment>
      </task>
      <transition name="Tr_RequestCancel" to="Join_Request">
         <action name="Ac_RequestCancel" class="com.myrequest.action.RequestCancelActionHandler"></action>
      </transition>

   </task-node>
   <task-node name="TN_ChiefDecide">
      <task name="Task_ChiefDecide">
         <assignment class="com.myrequest.task.ChiefDecideAssignmentHandler"></assignment>
      </task>
      <transition name="Tr_ChiefApprove" to="Deci_NeedBossDecide">
         <action name="Ac_ChiefApprove" class="com.myrequest.action.ChiefApproveActionHandler"></action>
      </transition>
      <transition name="Tr_ChiefNotApprove" to="Join_Request">
         <action name="Ac_ChiefNotApprove" class="com.myrequest.action.ChiefNotApproveActionHandler"></action>
      </transition>
   </task-node>

  <decision name="Deci_NeedBossDecide">
      <handler class="com.myrequest.decision.NeedBossDecideDecisionHandler"/>
      <transition name="Tr_Need" to="TN_BossDecide"></transition>
      <transition name="Tr_NotNeed" to="Join_Request">
         <action name="Ac_NotNeed" class="com.myrequest.action.NotNeedActionHandler"></action>
      </transition>
   </decision>

   <task-node name="TN_BossDecide">
      <task name="Task_BossDecide">
         <assignment class="com.myrequest.task.BossDecideAssignmentHandler"></assignment>
      </task>
      <transition name="Tr_BossApprove" to="Join_Request">
         <action name="Ac_BossApprove" class="com.myrequest.action.BossApproveActionHandler"></action>
      </transition>
      <transition name="Tr_BossNotApprove" to="Join_Request">
         <action name="Ac_BossNotApprove" class="com.myrequest.action.BossNotApproveActionHandler"></action>
      </transition>
   </task-node>
 <join name="Join_Request">
      <transition name="Tr_Join" to="Deci_DoSomething"></transition>
   </join>

   <decision name="Deci_DoSomething">
       <handler class="com.myrequest.decision.DoSomethingDecisionHandler"/>
      <transition name="Tr_Approve" to="ES_Finished">
         <action name="Ac_Approve" class="com.myrequest.action.ApproveActionHandler"></action>
      </transition>
      <transition name="Tr_NotApprove" to="ES_Finished">
         <action name="Ac_NotApprove" class="com.myrequest.action.NotApproveActionHandler"></action>
      </transition>

      <transition name="Tr_Cancel" to="ES_Finished">
         <action name="Ac_Cancel" class="com.myrequest.action.CancelActionHandler"></action>
      </transition>

   </decision>

   <end-state name="ES_Finished">
      <event type="node-enter">
          <action name="Ac_Finished" class="com.myrequest.action.FinishedActionHandler"></action>
      </event>
   </end-state> 
</process-definition>

 
 
 

package com.myrequest;

import org.jbpm.graph.node.*;
import java.io.FileInputStream;
import java.util.*;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.*;
import org.jbpm.identity.*;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.taskmgmt.exe.*;
import junit.framework.TestCase;
import com.myrequest.*;

public class ApproveActionHandler extends TestCase {
 
 ProcessDefinition pdf;
 ProcessInstance pi;
 String userId;

 boolean isChiefHere;
 public void setUp() {
  userId = "dust";
  isChiefHere = true;
 }
 
 public void test14DayAndChiefApproveAndUserCancel() throws Exception {
  this.deployProcessDefinition();
  this.createProcessInstance();
  System.out.println("+++++++++++++++++++++++++++++++++++++++");
  this.userWriteRequest(14);
  System.out.println("+++++++++++++++++++++++++++++++++++++++");
  this.chiefDecide(true);
  System.out.println("+++++++++++++++++++++++++++++++++++++++");
  this.userCancel();
  System.out.println("+++++++++++++++++++++++++++++++++++++++");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值