一、开发环境搭建
1.安装sdkman用于管理java环境
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
2.安装jdk环境
sdk install java 8u161-oracle
java -version
echo $JAVA_HOME
3.下载tomcat
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.50/bin/apache-tomcat-8.0.50.zip
tar -zxvf apache-tomcat-8.0.50.zip
./apache-tomcat-8.0.50/bin/startup.sh
4.部署activiti
wget https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip
tar -zxvf activiti-6.0.0.zip
cp activiti-6.0.0/wars/activiti-admin.war apache-tomcat-8.0.50/webapps
cd apache-tomcat-8.0.50/bin
./startup.sh
5.这样就启动tomcat并且部署了activiti
查看网址:http://localhost:8080/activiti-app
账号admin 密码test
二、Activiti6.0快速体验
1.流程参与者
2.流程设计
3.http://localhost:8080/activiti-app打开网址登陆进去
点击identity manager创建用户
4.kickstart APP创建一个流程
点击Create Process。输入流程信息
5.创建流程并且绑定用户。保存并关闭编辑器。
6.创建一个app,并且管理流程
点击Apps后,新增模块。
保存并且发布
7.进入管理员界面
http://localhost:8080/activiti-admin/#/login admin admin
点击Configuration
点击edit Activiti Rest endpoint
三、源码下载
进入github activiti主页,点击fork,到自己的github中。
git clone git@github.com:自己的账号/Activiti.git
cd activiti
git checkout -b activit-study activiti-6.0.0
mvn clean test-compile
四、入门小demo
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import org.activiti.engine.FormService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.form.FormProperty;
import org.activiti.engine.form.TaskFormData;
import org.activiti.engine.impl.form.DateFormType;
import org.activiti.engine.impl.form.StringFormType;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootApplication
public class DemoMain {
public static void main(String[] args) {
//创建引擎
ProcessEngine processEngine = getProcessEngine();
//部署流程
ProcessDefinition processDefinition = getProcessDefinition(processEngine);
//启动运行流程
ProcessInstance processInstance = startProcess(processEngine, processDefinition);
//处理流程任务
doTask(processInstance, processEngine);
}
private static void doTask(ProcessInstance processInstance, ProcessEngine processEngine) {
Scanner scanner = new Scanner(System.in);
while(processInstance != null && !processInstance.isEnded()) {
TaskService taskService = processEngine.getTaskService();
List<Task> list = taskService.createTaskQuery().list();
for (Task task : list) {
log.info("待处理任务:{}", task.getName());
FormService formService = processEngine.getFormService();
TaskFormData taskFormData = formService.getTaskFormData(task.getId());
List<FormProperty> formProperties = taskFormData.getFormProperties();
Map<String, Object> variables = Maps.newHashMap();
for (FormProperty formProperty : formProperties) {
String line = null;
if(StringFormType.class.isInstance(formProperty.getType())) {
log.info("请输入 {} ?", formProperty.getName());
line = scanner.nextLine();
variables.put(formProperty.getId(), line);
} else if(DateFormType.class.isInstance(formProperty.getType())) {
log.info("请输入 {} ? 格式(yyyy-MM-dd)", formProperty.getName());
line = scanner.nextLine();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = dateFormat.parse(line);
variables.put(formProperty.getId(), date);
} catch (ParseException e) {
e.printStackTrace();
}
} else {
log.info("类型不支持");
}
log.info("您输入的内容是[{}]",line);
}
taskService.complete(task.getId(), variables);
processInstance = processEngine.getRuntimeService()
.createProcessInstanceQuery()
.processInstanceId(processInstance.getId())
.singleResult();
}
log.info("待处理任务数量:{}", list.size());
scanner.close();
}
}
private static ProcessInstance startProcess(ProcessEngine processEngine, ProcessDefinition processDefinition) {
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId());
log.info("启动流程 {}", processInstance.getProcessDefinitionKey());
return processInstance;
}
private static ProcessDefinition getProcessDefinition(ProcessEngine processEngine) {
RepositoryService repositoryService = processEngine.getRepositoryService();
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
deploymentBuilder.addClasspathResource("second_approve.bpmn");
Deployment deployment = deploymentBuilder.deploy();
String deploymentId = deployment.getId();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.deploymentId(deploymentId)
.singleResult();
log.info("流程定义文件 {}, 流程ID {}", processDefinition.getName(), processDefinition.getId());
return processDefinition;
}
private static ProcessEngine getProcessEngine() {
ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();
ProcessEngine processEngine = cfg.buildProcessEngine();
String name = processEngine.getName();
String version = processEngine.VERSION;
log.info("流程引擎名称:{},版本:{}", name, version);
return processEngine;
}
}
五、打包
mvn package
cd target
java jar xx.jar
一、开发环境搭建
1.安装sdkman用于管理java环境
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
2.安装jdk环境
sdk install java 8u161-oracle
java -version
echo $JAVA_HOME
3.下载tomcat
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.50/bin/apache-tomcat-8.0.50.zip
tar -zxvf apache-tomcat-8.0.50.zip
./apache-tomcat-8.0.50/bin/startup.sh
4.部署activiti
wget https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip
tar -zxvf activiti-6.0.0.zip
cp activiti-6.0.0/wars/activiti-admin.war apache-tomcat-8.0.50/webapps
cd apache-tomcat-8.0.50/bin
./startup.sh
5.这样就启动tomcat并且部署了activiti
查看网址:http://localhost:8080/activiti-app
账号admin 密码test
二、Activiti6.0快速体验
1.流程参与者
2.流程设计
3.http://localhost:8080/activiti-app打开网址登陆进去
点击identity manager创建用户
4.kickstart APP创建一个流程
点击Create Process。输入流程信息
5.创建流程并且绑定用户。保存并关闭编辑器。
6.创建一个app,并且管理流程
点击Apps后,新增模块。
保存并且发布
7.进入管理员界面
http://localhost:8080/activiti-admin/#/login admin admin
点击Configuration
点击edit Activiti Rest endpoint
三、源码下载
进入github activiti主页,点击fork,到自己的github中。
git clone git@github.com:自己的账号/Activiti.git
cd activiti
git checkout -b activit-study activiti-6.0.0
mvn clean test-compile
四、入门小demo
五、打包
mvn package
cd target
java jar xx.jar