springBoot 구축 activiti 워 크 플 로

16047 단어 자바
1. 새 maven 프로젝트 2. 의존 하 는 pom 파일

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.jerrylgroupId>
    <artifactId>spring-boot-with-activitiartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <packaging>jarpackaging>

    <name>spring-boot-with-activitiname>
    <description>Demo project for Spring Bootdescription>

    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>1.5.2.RELEASEversion>
        <relativePath/> 
    parent>

    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <java.version>1.8java.version>
        <activiti.version>5.18.0activiti.version>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <scope>runtimescope>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>

        
        <dependency>
            <groupId>org.activitigroupId>
            <artifactId>activiti-engineartifactId>
            <version>${activiti.version}version>
        dependency>

        <dependency>
            <groupId>org.activitigroupId>
            <artifactId>activiti-springartifactId>
            <version>${activiti.version}version>
        dependency>

        <dependency>
            <groupId>org.activitigroupId>
            <artifactId>activiti-modelerartifactId>
            <version>${activiti.version}version>
        dependency>

        <dependency>
            <groupId>org.activitigroupId>
            <artifactId>activiti-diagram-restartifactId>
            <version>${activiti.version}version>
        dependency>
        
    dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>
project>

3. 새 springboot 설정 파일
server:
  port: 8080
security:
  basic:
    enabled: false

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/zhou?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
    username: root
    password: 123456

4. 새 spring 의 시작 파일
package com.jerryl;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan
public class SpringBootWithActivitiApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootWithActivitiApplication.class, args);
    }
}

5. springboot 를 시작 합 니 다. 데이터베이스 에 activiti 표 가 나타 나 면 구축 이 완료 되 었 음 을 설명 합 니 다.원본 으로 댓 글 달 고 싶 은 데...
activiti: activiti 는 BPM 의 프레임 워 크 이 고 processEngine 은 activiti 의 핵심 이 며 절차 가 생 성 된 각종 데이터 와 사례, 모니터링 과 관리 절 차 를 책임 집 니 다.activiti 기본 동작 은 데이터베이스 입 니 다. my batis 입 니 다.주: 워 크 플 로 activiti 의 표 는 관리 절차 이 고 업무 의 데 이 터 는 사용자 가 직접 만 들 고 유지 해 야 합 니 다.activiti 의 7 개 서비스 Runtime Service: 주로 절차 인 스 턴 스 와 관련 되 고 절차 정 의 는 디자인 의 절 차 를 말 합 니 다. 절차 인 스 턴 스 는 진정한 사건 을 말 합 니 다. 예 를 들 어 휴가 신청 절 차 는 디자인 의 절차 이 고 샤 오 밍 이 휴가 를 내 는 것 은 구체 적 인 절차 인 스 턴 스 입 니 다.이 서 비 스 는 하나의 프로 세 스 를 시작 하고 하나의 프로 세 스 인 스 턴 스 를 중단 하거나 활성화 하 며 신호 이벤트 트리거, 메시지 시간 트리거 (이 는 시작 프로 세 스 의 조건 과 관련 이 있 음), 변 수 를 설정 하고 이벤트 감청 등 일련의 스 트림 인 스 턴 스 와 관련 된 작업 을 만 들 수 있 습 니 다.History Service: 주로 프로 세 스 의 실행 기록 을 조회 하 는 데 사 용 됩 니 다. 조회 와 삭제 작업 만 있 고 추가 와 수정 이 없습니다.주로 활동 인 스 턴 스, 디 테 일, 프로 세 스 인 스 턴 스, 변수 인 스 턴 스 와 작업 인 스 턴 스 를 조회 하고 데이터베이스 에 해당 하 는 표를 조회 합 니 다.Identity Service: 주로 사용자 와 사용자 그룹 을 제어 하 는 데 사 용 됩 니 다. 프로 세 스 엔진 자체 가 사용자 제한 이 없 으 므 로 사용자 작업 을 할 때 사용자 가 완성 하도록 지정 할 수 있 습 니 다. 이것 은 필수 가 아 닙 니 다.이 서 비 스 는 사용자 와 사용자 그룹의 생 성, 저장, 삭제, 그리고 이들 의 관계, 사용자 의 상세 한 정보 생 성 등 을 포함한다.TaskService: 주로 절차 중의 작업 노드 와 관련 된 작업 에 사 용 됩 니 다. BPMN 은 실제 적 으로 여러 가지 유형의 작업 이 있 습 니 다. 사용자 작업 뿐만 아니 라 이 설정 은 주로 사용자 작업 과 관련 된 설정 입 니 다. 다른 유형의 작업 은 많은 설정 이 필요 하지 않 습 니 다. 대부분 자동 유형의 작업 이 므 로 해당 하 는 트리거 조건 이 필요 합 니 다.FormService: 주로 폼 데이터 의 저장 과 가 져 오기 에 사 용 됩 니 다. 시작 프로 세 스 의 폼 과 작업 과정 에서 발생 하 는 폼 이 있 습 니 다.Management Service: 이 서비스 기능 은 비교적 복잡 합 니 다. 안에 있 는 방법 을 보면 대체적으로 이러한 기능 이 있 습 니 다. 데이터베이스 시트 의 관련 정 보 를 조회 하고 Job 과 관련 된 조회, 삭제 합 니 다.이벤트 로그 작업 도 있 습 니 다.전체적으로 말 하면 activiti 의 전체적인 작업 입 니 다.DynamicBpmnService: 이 서 비 스 는 5.19 버 전 이후 추 가 된 서비스 로 Repository Service 의 역할 과 비슷 하 며 모두 절차 정의 와 관련 이 있 지만 완전히 다르다.이름 으로 볼 때 동태 적 인 BPMN 서비스 이 고 그 안의 방법 은 모두 절 차 를 바 꾸 는 관련 속성 이다.이 방법 은 모델 을 읽 지 않 고 프로 세 스 정 의 를 직접 조작 할 수 있 습 니 다.(하나의 절 차 는 기본적으로 모델 을 만 들 고 그림 을 디자인 하 며 BPMN 의 XML 파일 을 생산 하고 절차 정의 로 배치 해 야 한다. 이 서 비 스 는 절차 정 의 를 직접 조작 할 수 있 고 원래 의 파일 을 바 꾸 지 않 으 며 개인 적 으로 문 제 를 가 져 올 수 있다 고 느 낄 수 있 지만 현재 절차 유통 내부 의 실현 에 대해 완전히 이해 하지 못 하고 사용 에 신중 해 야 한다. 예 를 들 어 어떤 절차 가 실행 되 고 있다.이전 버 전의 정 의 는 이 럴 때 프로 세 스 정 의 를 바 꾸 고 그 다음 에 어떻게 돌아 가 느 냐 가 문제 입 니 다). 프로 세 스 도 승인 자의 설정 입 니 다.
activiti 의 절차 1. 배치 절차
         repositoryService.createDeployment() //    
        .name(deployFile.getOriginalFilename()) //        
        .addZipInputStream(new ZipInputStream(deployFile.getInputStream()))//  ZIP   
        .deploy();//    

2. 시작 절차
        Map variables=new HashMap();
        variables.put("leaveId", leaveId);
        //     
        ProcessInstance pi= runtimeService.startProcessInstanceByKey("hello",variables); 
        //       Id    
        Task    task=taskService.createTaskQuery().processInstanceId(pi.getProcessInstanceId()).singleResult(); 
         //                     
        taskService.complete(task.getId()); 
        Leave leave=leaveService.findById(leaveId);
        //    
        leave.setState("   ");
        leave.setProcessInstanceId(pi.getProcessInstanceId());
         //        
        leaveService.updateLeave(leave);

좋은 웹페이지 즐겨찾기