在流程中调用 JAVA Class
在本章中我们将学到如何使用流程的 Service task(服务任务)
中调用JAVA类。
将 Service Task 添加到流程中
打开 Camunda Modeler ,在左侧工具架中选择 Task(矩形),拖动到“检查申请单”后面,双击命名为“发放贷款”
点击新创建的节点,点击右侧弹出的扳手按钮,将类型修改为 Service Task。
实现 JavaDelegate 类
现在我们需要添加 Service Task 可以调用的实现类,将类添加到 org.example.loanapproval
包下,命名为 OfferLoan
,这里我们希望打印贷款人信息到日志,具体代码如下:
package org.example.loanapproval;
import java.util.logging.Logger;
import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.camunda.bpm.engine.delegate.JavaDelegate;
public class OfferLoan implements JavaDelegate {
private final static Logger LOGGER = Logger.getLogger("LOAN-REQUESTS");
@Override
public void execute(DelegateExecution execution) {
LOGGER.info("offer " + execution.getVariable("lenderId") + " loans");
}
}
配置 Service Task
回到 Camunda Modeler ,选择“发放贷款”节点,在右侧的属性面板中,选择 Implementation
为 Java Class
,Java Class 为我们刚才创建的类 org.example.loanapproval.OfferLoan
保存流程
测试一下
重新编译并运行项目,浏览器中打开 http://localhost:8080/ ,点击 Tasklist 进入,点击右上角 Start Process
,启动一个新流程
刷新页面,完成人工任务
检查 Spring Boot 程序控制台输出,可以看到贷款人信息已经被打印出来了
INFO 3156 --- [nio-8080-exec-6] LOAN-REQUESTS : offer 张三 loans
到此第五部分结束,如果想直接获取到现在为止的进度,可以下载zip包,或者使用如下命令
git clone https://gitee.com/zoollcar/camunda-get-started-spring-boot-and-dmn.git git checkout -f Step-5