HAP_工作流自定义操作

业务流程:


13265172-2f00e97d88eff937.png
image.png

2. 实现:

13265172-3b5f341cfe18be6c.png
image.png
**接下来就开始通过图形化界面进行工作流的设计了:**

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

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

->批准->处理请求\

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

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


    13265172-daeb3ce2189580ec.png
    image.png

    13265172-199f74cde05cee69.png
    image.png

    13265172-de7bc95f5e42ca4d.png
    image.png

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

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


    13265172-21702a054fae02fc.png
    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 如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!--自定义上传配置-->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--setthemaxuploadsize100MB-->
        <property name="maxUploadSize">
            <value>104857600</value>
        </property>
        <property name="maxInMemorySize">
            <value>4096</value>
        </property>
    </bean>
    <!--工作流中的实现信用检查的服务任务-->
  <!--  <context:component-scan base-package="wht.ora20796.components"/>-->
    <context:component-scan base-package="*.*.components"/>
</beans>

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


13265172-e9de0926524f0888.png
image.png
  1. 使用单一网关处理接受和拒绝


    13265172-c04937c82539f378.png
    image.png

    13265172-f27c1f4cecb9f2f6.png
    image.png

    13265172-de61042918ea9df9.png
    image.png
  2. 拒绝后通过邮件提醒


    13265172-8e979998ed4cdf86.png
    image.png

    13265172-8c981ff1e78a0532.png
    image.png

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

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


    13265172-200003febb717657.png
    image.png

    13265172-82cd7ec363cc83b0.png
    image.png

    13265172-a20deaa13324d9d0.png
    image.png

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

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


    13265172-6306c086b23ade2d.png
    image.png
  5. 新增管理员评估处理评估请求超时的任务


    13265172-a75c5c7203d2f116.png
    image.png

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

  6. 使用单一网关处理审批通过和未通过,若通过,则处理请求。
    13265172-0b5eae35ad705589.png
    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";
    }
}

13265172-a352de4142cca5f6.png
image.png

2. 发布工作流

13265172-4970057c5cfe71cb.png
image.png

进入工作流测试页面:


13265172-2959c2f826a08f64.png
image.png

接下来请自行测试...

常见bug:

问题1
13265172-090a14ce494147de.png
image.png

比如:

问题2
13265172-a3ffbacde90224bf.png
image.png
问题3
13265172-366164db963c3434.png
image.png
问题4:邮件发送错误
13265172-19211df82870eb12.png
image.png

13265172-a48a5c83fca4b87a.png
image.png

或者:


13265172-8fd48dd88947d072.png
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 
13265172-c198f7fea5e2964a.png
image.png

没有名称


13265172-8fd0ced1781c3a0a.png
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)
13265172-0d1eb2357aa687ac.png
image.png

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值