HAP_工作流自定义操作

业务流程:


HAP_工作流自定义操作_第1张图片
image.png

2. 实现:

HAP_工作流自定义操作_第2张图片
image.png
**接下来就开始通过图形化界面进行工作流的设计了:**

首先要设计好贷款请求的处理流程:

接收用户发出的贷款申请->检查信用度->评估贷款请求

->批准->处理请求\

->拒绝->邮件通知用户->结束

点击上图中的编辑图标,进入工作流的图形化界面设计
  1. 首先定义开始事件,开始事件用于触发工作流


    13265172-daeb3ce2189580ec.png
    image.png

    HAP_工作流自定义操作_第3张图片
    image.png

    HAP_工作流自定义操作_第4张图片
    image.png

    该开始事件设置两个初始参数:amount(贷款金额)、credit(信用度).

  2. 增加检查信用度的服务任务


    HAP_工作流自定义操作_第5张图片
    image.png

    服务任务需要一个java实现类

package wht.ora20796.components;

import com.hand.hap.activiti.custom.IActivitiBean;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;
import org.springframework.stereotype.Component;

@Component
public class CreditService implements JavaDelegate, IActivitiBean {
    @Override
    public String getBeanName() {
        return "checkCredit";
    }

    @Override
    public void execute(DelegateExecution delegateExecution) {
        Integer amount = delegateExecution.getVariable("amount", Integer.class);
        Integer credit = delegateExecution.getVariable("credit", Integer.class);
        if (amount > credit * 1000) {
            delegateExecution.setVariable("accept", Boolean.FALSE);

        } else {
            delegateExecution.setVariable("accept", Boolean.TRUE);
        }
    }

}

getBeanName的返回的值会在代理表达式中使用,注意这里需要将该类的包名加入到spring扫描的包路径中.
更改spring配置文件applicationContext-beans.xml 如下



    
    
        
        
            104857600
        
        
            4096
        
    
    
  
    

完成之后配置服务任务的代理表达式的值


HAP_工作流自定义操作_第6张图片
image.png
  1. 使用单一网关处理接受和拒绝


    HAP_工作流自定义操作_第7张图片
    image.png

    HAP_工作流自定义操作_第8张图片
    image.png

    HAP_工作流自定义操作_第9张图片
    image.png
  2. 拒绝后通过邮件提醒


    HAP_工作流自定义操作_第10张图片
    image.png

    HAP_工作流自定义操作_第11张图片
    image.png

    在该组件上填写相应的信息

  3. 增加评估请求的人工任务


    HAP_工作流自定义操作_第12张图片
    image.png

    HAP_工作流自定义操作_第13张图片
    image.png

    HAP_工作流自定义操作_第14张图片
    image.png

    设置任务的到期时间为(到期时间的表示方法为ISO8601)3分钟,并选择审批规则,指定审批人为周杰森。

  4. 在评估请求环节添加边界定时事件(注意线要连正确了)
    如果3分钟后没处理转交管理员


    HAP_工作流自定义操作_第15张图片
    image.png
  5. 新增管理员评估处理评估请求超时的任务


    HAP_工作流自定义操作_第16张图片
    image.png

    设置审批规则中指定人为admin;不设置到期日期。

  6. 使用单一网关处理审批通过和未通过,若通过,则处理请求。
    HAP_工作流自定义操作_第17张图片
    image.png

    通过新增跳转条件:{approveResult=='APPROVED'} 未通过新增跳转条件:{approveResult=='REJECTED'}
    处理请求需新增一个java类,如下:
package wht.ora20796.components;

import com.hand.hap.activiti.custom.IActivitiBean;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;
import org.springframework.stereotype.Component;

@Component
public class ProcessLoan  implements JavaDelegate,IActivitiBean {
    @Override
    public void execute(DelegateExecution delegateExecution) {
        System.out.println("\n\n"+"处理借款申请"+"\n\n");

    }

    @Override
    public String getBeanName() {
        return "processLoan";
    }
}

HAP_工作流自定义操作_第18张图片
image.png

2. 发布工作流

13265172-4970057c5cfe71cb.png
image.png

进入工作流测试页面:


HAP_工作流自定义操作_第19张图片
image.png

接下来请自行测试...

常见bug:

问题1
HAP_工作流自定义操作_第20张图片
image.png

比如:

问题2
HAP_工作流自定义操作_第21张图片
image.png
问题3
HAP_工作流自定义操作_第22张图片
image.png
问题4:邮件发送错误
HAP_工作流自定义操作_第23张图片
image.png

HAP_工作流自定义操作_第24张图片
image.png

或者:


HAP_工作流自定义操作_第25张图片
image.png
问题5:发布不成功,未知错误发生,无法保存模型

2018-08-07 09:52:22.615 ERROR [10001] [1534602146e843089bc5979677368ca6] com.hand.hap.activiti.controllers.ModelSaveRestResource - Error saving model
org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
Element type "path" must be followed by either attribute specifications, ">" or "/>".
    at 
HAP_工作流自定义操作_第26张图片
image.png

没有名称


HAP_工作流自定义操作_第27张图片
image.png
问题5:发布不成功,未知错误发送,无法保存模型
2018-08-07 09:52:22.615 ERROR [10001] [1534602146e843089bc5979677368ca6] com.hand.hap.activiti.controllers.ModelSaveRestResource - Error saving model
org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
Element type "path" must be followed by either attribute specifications, ">" or "/>".
    at 
org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:136)
HAP_工作流自定义操作_第28张图片
image.png

换浏览器,换一个非IE内核的,其他浏览器也不要选兼容模式,要选高速/极速浏览器

你可能感兴趣的:(HAP_工作流自定义操作)