Activiti 워크 플로우 전투 요약의 사용

특히 등 출석, 금융, 계약, 같은 시스템 내부 관리 시스템에서 매우 인기가해야 할 우리의 일상 업무의 워크 플로우는 분리 될 수 없다. 재테크의 우리의 분야에서, 대출 승인, 리스크 관리 및 감사의 다른 측면 주로 워크 플로우. 워크 플로가 특정 임계 값을 가지고 있기 때문에, 아직 엔터프라이즈 애플리케이션을위한 워크 플로우 오픈 소스 프레임 워크를 만날 수 없다, 그것은 할 수 없습니다, 지원 워크 플로우로 알려진 일부 국내 CMS 오픈 소스 프로젝트도 Activiti 단순히 소개하거나 상대적으로 간단한 워크 플로우를 달성 할 수있다 완전한 충족 일반 엔터프라이즈 애플리케이션.

Activiti 가장 인기있는 오픈 소스 워크 플로우 프레임 워크이지만, 때문에 서양의 서로 다른 문화와 조직의 차이로 높은 Activiti 중국 스타일의 엔터프라이즈 애플리케이션을 더 어렵게 할 걸릴 변환 많이 걸립니다.

여기에 더 실용적이고 더 복잡 할 것이다 발생한 문제를 해결하기 위해 사고와 아이디어의 Activiti 워크 플로우 공통점을 기록합니다.

1,해야 할 일, 수요가 프로세스 중심의 작업 중심 Activiti 관련 API에 있습니다 관련이있다

예를 들어, 수요 아래 그림
그림 삽입 설명 여기
Activit하는 과정에서 여러 작업으로 구성되어, 우리의 중국어 수요는 더 승인 과정에서 두 번 승인 작업보다이 과정에 참여하는 경우에도, 프로세스가 한 번만 허용되는 형식 승인이다, 또한 한 번만 표시해야합니다.

여기 태스크 TaskService 프로세스 인스턴스 ID를 확인하는 데 필요한입니다 다음 디엠 퍼시스, 쿼리 API를 호출 무거운 작업은 사용할 수없는 치료가 더 좋은 말, 일반적으로 데이터 아무리 그것을 할 필요가 없습니다 후 경우는 false를 페이징 기술과 메모리 페이징에 너무 큰 것입니다. 를 통과 히스토리 데이터의 축적이 작업을 수행하는 방법 다음 사용 가짜 페이징에 적합하지 누적, 그리고 것 더 때문에? 우리의 접근 방식은 특정 테이블을 기록하는 프로세스의 끝이 프로세스 및 모든 참가자의 승인에, PROCESS_COMPLATE 이벤트 리스너를 추가하는 것입니다. 다음 쿼리 필드 완료에 Activiti API를 호출, 쿼리를 페이징 할 때이 테이블 시작 페이지 흐름을 발견했다.

2, 동적 런타임을 추가하거나 삭제 노드

중국 스타일의 경우 승인 장면은 종종 운영시 발생하는 동적으로는 BPMN 사양과 완전히 일치하지만, 그것은 또한 광범위한 수요가 있지만 (추가하거나 누군가에게이 작업을하려는 충동 등 리더십 삭제 노드는, 그것을 연대 당신이 사용자 정의 작업을 설계 할 때 사람으로 정의 된 모든 작업은 작업을 시작하는 경우)하지만, 싱글 플레이어 미션이되는 것입니다 비용이 너무 높다. 나는, 그것은 당신이 Activiti 달성 할 해킹이 작업을 수행하지 않는 것이 좋습니다,이 작업을 수행 할 수없는 Activiti 것을 후회

반응식 Activiti 프로세스 정의 실행 인스턴스가 생성되면 흐름 인, 노드는 "정적"정의에 의해 동적으로 생성되어 다양한 작업 흐름 구성되어 삭제 될 수 없다. 이 점은 고객의 요구를 관리하기 위해 시도 할 수 있습니다.

3, 과정은 매우 중요 타이틀 스폰서입니다

프로세스 및 타이틀 스폰서 중국 형식 승인 요구 사항에 매우 중요합니다 제목은 일반적으로 두 변수의 추가를 지원하는 데 필요한 변수를 기본적으로 생성 될 수 있으며, Activiti에서 사용자 정의 할 수 있습니다 할 필요가있을 때 프로세스 시작, 같은 applyUserId 및 제목입니다.

네, 중요한 양방향 매핑

승인은 항상 대출 신청 과정에서, 이러한 대출 승인 프로세스로, 비즈니스와 대출 신청 번호를 매핑 관련이는 과정에서 대출 신청을 찾을 수 있어야 찾을 수 있습니다. 일반적으로 지정된 businessKey에 businessTable + 시작 과정으로, 테이블에 비즈니스 프로세스 인스턴스 ID 필드에 증가 ":"+ businessId, 따라서 양방향 매핑을 수립.

5, 기호

일반적으로 금융 홍콩 등의 작업 팀을 처리하는 데 사용 서명 Acviti 기호라는 개념은, 작업은 작업 방법 청구항에 의해 처리 한 후 서명합니다 그들 중 하나의 세 가지에 표시 할 수-, 세 사람 수령 후, 사용자 그룹이 있습니다 있습니다 작업은 다른 두 삭제 할 수 있습니다. 당신이 기호의 개념을 노출하지 않으려면, 당신은 또한 서명 한 후 complate 청구 방법을 강조하는 것입니다 같은 시간을 적용하지만, 동시 승인의 문제에주의를 기울이있을 수 있습니다.

(6) 사용자 및 사용자 그룹

Activiti 사용자 및 사용자 그룹 및 사용자의 요구 및 시스템의 역할은 사용자 이름, 관계 역할을 인코딩 및 사용자 그룹과 관련된 사용자의 역할을하여 사용자 및 시스템을 동기화한다. 시스템 역할 및 워크 플로우 역할, 분할에 대한 사용 권한 시스템의 관점 및 워크 플로우 승인에서 시스템의 역할이 워크 플로우의 관점에서 역할이다 : 역할은 두 가지 범주로 나누었다. 작업 _ 스트림의 시작 : 쉽게 역할의 이름을 지정하는 워크 플로우 역할의 혼합을 발생하지 않는 상황의 두 가지 유형을 구별 할 수 있도록합니다. 워크 플로우 _ 회장, 워크 플로우 _ 기업 금융 예를 들면 다음과 같습니다.

7. 반환

다음 그림과 수요 :

그림 삽입 설명 여기

중국 스타일은 종종 장면의 승인이 여전히 네 번째 승인에서 현재 노드로 노드에 반환해야 필요, 필요 첫 번째, 두 번째, 세 번째 임기를 노드를 반환 할 수 있습니다. 날 믿어, 당신이 설계 과정에 설계 방법을 사용 감히 경우 여러 개의 선을 그릴, 프로세스 설계가 매우 복잡되었는지 확인합니다. 이것의 Activiti 주요 임무는 그가 이동하지 않은 이유이지만, 다행히도이 점프에 JumpTaskCmd 방법으로 달성되었다. 또한 쿼리 환불 노드에 중복 노드를 필터링, 다시 과정을 반복 반송의 경우 승인을 고려한다.

8, 필수적인 과정 개입

조건부 쿼리 프로세스를 포함, 작업이 모든 프로세스에 할당, 작업을 다른 노드로 이동, 필요한 기능이다 흐름 라인은 ROMS는 지적한다. 나 또한 반복적으로 관리자의 개입이 필요 기능이없는 만 잘못 특정 사업 분야의 상황을 찾아 통해 승인 절차 후 약간의 부주의 한 사용자를 만났다, 바보로 사용자를 넣어 그것은 단지 수 있습니다 시도 데이터베이스 테이블은 변화를 달성했다. 어떤 특정 요구에 개입 기능, 그것에 자신의 사업과 함께이 상황입니다.

9, 통합 다이어그램 뷰어

다이어그램 뷰어 플러그 - 인 플로우 차트를 보려면 기본 사용과 함께 할 수 있도록 너무 추악한 아름답고하지가 없습니다.

10도 모델러는 집적 :
그림 삽입 설명 여기
11, 및 온라인 버전 관리 방법

모델 관리에 대한 필요성, 통합 모델러는 새로운 수정 모델이 될뿐만 아니라, 그들은 새로운 프로세스 설계를 사용하기 전에 모델을 게시 할 수 있습니다. 라인이 어떻게 온라인 환경에 동기화되도록 설계 모델? 이 모델 내보내기 및 가져 오기 기능을 제공해야합니다. 직접 원하는에 또한 사용 SQL, 프로세스 정의이기 때문에 바이너리 데이터를 사용 SQL 도입 후 트랜스 코딩 프로세스는 데이터가 손실 될 수 있습니다. 물론, 매우 간단한 배포 시나리오는 직접 함께 워크 플로우 프로세스 및 코드를 지적 할 수있다.

비즈니스 데이터베이스 테이블 디자인 포인트의 12 승인

일반적으로 새로운 프로세스 업데이트, 새로운 클래스 필요 순수한 디자인을 더한 인스턴스 프로세스 인스턴스와 연관된 정상적인 프로세스 ID 필드 순수 클래스 또는 비즈니스 클래스보세요. 비즈니스의 업데이트 수준의 경우는 승인 절차가 완료 초안 비즈니스 테이블의 동일한 구조로 테이블을 설계하는 것이 가장 좋습니다, 다음 초안 업데이트를 통해 청취자 비즈니스 테이블 응용 프로그램 다시.

확장 프로세스 설계의 13 양수인

Activiti 사용자 작업, 인간의 조건 중 하나에 지명 또는 치료를 매우 간단 할당 또는 사용자 그룹을 지정, 중국에서이 형식 승인은 전적으로 부적절하다, 또한 디자인에 확장 될 필요가, 방법은 JSON으로 설정되어 양수인 필드를 사용하는 것입니다 이벤트 TASK_CREATED, JSON의 동적 해상도가 발생할 때, 각각의 실제 JSON 확장 상태는,이 변수를 계산 JSON 구성 및 사람들의 흐름은 실제 프로세스를 얻는다. 당신은 또한 JSON의 문자열을 생성한다는 기준에 따라 UI를 제공해야하므로이 과정 설계 입력 문자열 JSON은 인류에있을 때 음, 더욱, 모델러를 향상시킬 수 있습니다.

14 일 첫 번째 작업을 완료

스폰서 노드, 두 개의 디자인이 먼저 필요하므로, 하나는 직접 승인 작업에 다음 노드 StartEvent 이상 생략되어 있지만 작업은 일반적으로, 또한 등등 파괴하거나 작업에 다시 적용 할 필요가 발기인을 반환 디자인 두 종류 : 기자 UserTask에 노드를 추가, 그것은 우리가 자동으로이 작업의 첫 번째 사용자를 후원하는 것을 기억해야하는 프로세스를 시작합니다.

15 일 일반 양식 디자인

솔직히이 과중한 업무, 당신은 formKey지도에 의해 설립 과정의 설계에 의해 생성 된 HTML 폼 디자이너를 저장하는 최초의 필요성, 실행시 formKey을 통해 해당 흐름을 표시하는 양식을 찾을 수 있습니다. 비 운영 데이터를 공통의 형식으로 저장할 수있는 경우는 그들이 서비스 데이터, 일반적으로 데이터베이스 테이블을 정의 자동으로 DDL 양식을 생성하여 할 할 경우 어려움은 여전히 ​​후, 사용자의 요구는, 저장된 양식 데이터를 작성하는 그러나이 방법은 유지 보수 및 안전에 문제가 발생했습니다. 같은 일반적인 형식 JSON / XML 매핑 규칙에 의해 특정 공정 후, 트래픽이 지정된 테이블에 매핑 등의 또 다른 방법.

기초가 폼 디자이너, 드래그 앤 드롭 형태로 개발, 개발이 양식의 신속한 개발을위한 XJR 자바 프레임 워크를 시도 할 수 있습니다 좋지 않은 경우, 프로그래밍 기초는 개발이 구성 요소를 사용하지에 직접 게시 할 수 있습니다 완전한 형태를 개발할 수 있습니다 컴파일러 않고 메뉴 기능을 사용할 수있다. 사용자 지정 양식 권한 제어에있다.
그림 삽입 설명 여기
그림 삽입 설명 여기
16, 잘 들어

리스너는 비동기 아닌, 비동기 리스너는 리스너가 비동기 아니다, 아니다, 그것은 당신이 TASK_COMPLATE 이벤트 리스너가있는 경우 이상이보고 된 경우입니다 같은 스레드에 taskService를 이벤트 소스를 생성 complate 이벤트가 완료되지 않았습니다. 또한 로컬 리스너가 설계 과정에서 볼 수 있기 때문에 비즈니스 코드 사방에 흩어져 및 유지 보수가 어려운 발생합니다, 오히려 로컬 수신기를 사용하는 것보다, 글로벌 청취자를 사용하는 것이 좋습니다.

(17) 핫 전개 과정

첫 번째 레이어는 라인의 핫 배포 파일 업로드 기능에 의해 라인에 좋은 공정 설계, 배포 업데이트입니다 지원합니다. 또한, Modeler는 온라인 완료 후 발효 배포를 위해 디자인 된 모델을 사용. 이전 과정의 발효는 영향을받지 않습니다 후뿐만 아니라, 새로운 프로세스는 최신 공정 설계 흐름에 따라 기존의 공정 설계 흐름에 따라.

18, 프로세스 파괴하고 재 적용

케이블을 통해이 전용 게이트웨이를 설계하지만,이 시간에 파괴 과정 후 Banjie의 내부에서 등장합니다. 사용자의 요구를 완전히 제거 할 수 있지만하는 경우도 deleteProcessInstance, deleteHistoricProcessInstance 초안 목록 삭제 비즈니스 관련 기록 (있는 경우)

19 연대

연대 서명은 투표로 제공되지만 일반적으로는 일반적으로 두 경우 모두에서 사용되는 말. 하나는 다른 사람이 재판, 그는, 그는 다른 사람의 의견을 참조하여 승인 과정에있을 것입니다 지나갈 것입니다 만 통해 모든 사람입니다. Activiti의 첫 번째 기본 지원, 선거에서 두 번째로 complate 자신의 작업과 연대 사람들은 멀티 임무에 참여합니다.

20 Activiti 많은 버전, 내가 선택하는

현재 상대적으로 더 성숙과 버전이 존재하는 동안 버전 6.x 7.x의 업그레이드 매우 짧은 곧, 5.22이며, 2018 년에 6.0 alapha의 나는 또한 버그를 많이 측정 시도 버전, 지금은 최신 버전입니다했다 작은 기능에 변경 7.1, 주로 클라우드 원주민, 탄성 마이크로 서비스 지향 및 고정 표시기, 중요한 건축 업그레이드 K8S 지원을했다. 마이크로 서비스, 당신은 Activiti 받침대 Activiti5는 SOA의 Activiti Activiti 것을 대략 수 있습니다, 그것은 서비스의 마이크로 버전 7입니다. 앞서 언급 그러나, Activiti 국내 사용이 변환은 직접 네이티브 마이크로 서비스를 포장하지 않고 그래서 지금, 일을해야 친절하지, 실제로 완벽한 워크 플로우 아닙니다 가져왔다. FormService 및 TaskService 관련 인터페이스도 변경을위한 마이크로 서비스 지원뿐만 아니라 아름다운 이전 버전과 최신 모델러의 버전없는 좋은 이외에 Activiti 7. (제 재 인쇄 명나라 청)

게시 16 개 원래 기사 · 원의 찬양 3 · 조회수 1191

추천

출처blog.csdn.net/weixin_45227226/article/details/104916667