HAP计划任务、工作流整理


今天学习了HAP的计划任务,
1:简单按照文档总结计划任务操作步骤

1)首先,点击项目页面上的任务详情,我们可以看到对Job进行管理的界面,点击新建Cron任务或简单任务,我们就可以在弹出窗口上完善我们的Job信息

2)Job信息的完善页面,补充我们需要的相应信息来生成一个完善的JobCreateDto


3)JobCreateDto生成完成之后,我们就会在后台进行JobDetail的生成,具体方法可以参见com.hand.hap.job.service.implQuzrtzServiceImplCreateJob方法:




4)JobDetailTrigger完成在Schedule中的作业注册后,JobDetail就会自动根据相应的Trigger来运行;

绿色的Job任务代表该任务正在执行中,我们可以在控制台中看到这个Job的相关信息,上图中的红框就是我们Job中打印的一句话。在这需要和大家说明一下,当我们完成一个Job的创建后,这个Job就会马上被执行一次,之后才会匹配我们定义的Trigger来执行。同时,我们每一个Job的执行,都会有一个监听器来对这个Job进行监听,也就是JobRunningListener,感兴趣的童鞋可以去研究一下。(ps:当我们在后台创建完一个线程后,可以在前台直接将这个Job挂起,不用再次重启服务。)

另外在项目中quartz.properties文件定义了Quartz应用运行时行为,还包含了许多能控制Quartz运转的属性。它应放在工程的classpath中。童鞋们可以看一看。

2:按照文档和实际操作总结工作流

1:启动项目.点击工作流菜单中的流程设计选项.

点击其中的新建按钮.会看到以下对话框.

名称:工作流的名称.

唯一标识:工作流的key,在工作流部署后,可以通过该值启动工作流.

分类:工作流的类别.

描述:工作流的描述信息.


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

定义一个简单贷款申请工作流,需要对贷款金额,以及贷款人的信用度进行系统检测再通过人工审批,人工审批需要进行会签,90%的人通过才可以进行放贷。人工审批的同时运行加签和转交


1.首先定义开始事件,开始事件用于触发工作流.

配置开始事件的属性.表单属性是用于启动工作流参数.

2.确定整体设计流程


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

@Component
public class CreditService  implements JavaDelegate,IActivitiBean {
    @Override
    public void execute(DelegateExecution execution) {
        Integer amount = execution.getVariable("amount",Integer.class);
        Integer credit = execution.getVariable("credit",Integer.class);
        if(amount > credit*1000){
            execution.setVariable("accept",Boolean.FALSE);
        }else{
            execution.setVariable("accept",Boolean.TRUE);
        }
    }

    @Override
    public String getBeanName() {
        return "checkCredit";
    }
}
19
 
1
@Component
2
public class CreditService  implements JavaDelegate,IActivitiBean {
3
    @Override
4
    public void execute(DelegateExecution execution) {
5
        Integer amount = execution.getVariable("amount",Integer.class);
6
        Integer credit = execution.getVariable("credit",Integer.class);
7
        if(amount > credit*1000){
8
            execution.setVariable("accept",Boolean.FALSE);
9
        }else{
10
            execution.setVariable("accept",Boolean.TRUE);
11
        }
12
    }
13
14
    @Override
15
    public String getBeanName() {
16
        return "checkCredit";
17
    }
18
}
19

4.getBeanName的返回的值会在代理表达式中使用,注意这里需要将该类的包名加入到spring扫描的包路径中.

spring配置文件中添加

<context:component-scan base-package="hbi.core.demo.workflow"/>
1
 
1
<context:component-scan base-package="hbi.core.demo.workflow"/>


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

${checkCredit}
1
 
1
${checkCredit}

6.使用单一网关处理接受和拒绝


设置accept分支的跳转条件为


设置reject分支的跳转条件为

代码:
${accept==true}
${accept==false}
2
 
1
${accept==true}
2
${accept==false}

下面几个是我没做的,仅仅拷贝与参考文档

------------------------没做的部分--------------------------------

为了测试方便设置任务派遣为jessen

设置任务的到期时间为(到期时间的表示方法为ISO8601)3分钟

5.处理请求超时以及评估通过

请求超时使用边界定时事件,设置与任务超时一样长的事件段即可P3M,

-----------------------------------------------------------------------------------------------------


7.分支设置跳转条件代码:

//通过分支设置跳转条件
${approveResult=='APPROVED'}
//未通过
${approveResult=='REJECTED'}
4
 
1
//通过分支设置跳转条件
2
${approveResult=='APPROVED'}
3
//未通过
4
${approveResult=='REJECTED'}

8.处理请求的实现类为

//千万别忘了@Component注解
@Component
public class ProcessLoan implements JavaDelegate,IActivitiBean {
    @Override
    public void execute(DelegateExecution execution) {
      System.out.println("-----------------------");
        System.out.println("-------!!给钱!!----------------");
        System.out.println("-----------------------");
    }

    @Override
    public String getBeanName() {
        return "processLoan";
    }
}
15
 
1
//千万别忘了@Component注解
2
@Component
3
public class ProcessLoan implements JavaDelegate,IActivitiBean {
4
    @Override
5
    public void execute(DelegateExecution execution) {
6
      System.out.println("-----------------------");
7
        System.out.println("-------!!给钱!!----------------");
8
        System.out.println("-----------------------");
9
    }
10
11
    @Override
12
    public String getBeanName() {
13
        return "processLoan";
14
    }
15
}


10.保存完成的工作流.


2.工作流测试

2.1点击工作流发布按钮

.

2.2进入工作流测试页面.

启动工作流.

3.进入代办事项查看


猜你喜欢

转载自www.cnblogs.com/wuqichuan666/p/9446809.html