uEngine6 BPM으로 프로세스를 그리고, 사람 작업과 폼을 붙이고, 외부 시스템을 이벤트로 연결하고, 운영 화면에서 되돌리는 법을 처음부터 따라 합니다. 마지막 부에서는 은행 계정계와 ERP를 실제로 연결합니다.
무엇을 · 왜#
uEngine6 BPM은 BPMN 2.0으로 그린 업무 흐름을 실행하는 오픈소스 엔진과 화면입니다. 흐름은 BPM이 정하고, 실제 업무는 사람(업무 목록·폼)과 다른 시스템(REST·SQL·Kafka 이벤트)이 합니다.
| 구성 | 기본 포트 | 하는 일 |
|---|---|---|
| keycloak-gateway | 8288 | 브라우저의 단일 진입점. 로그인(Keycloak) 처리와 각 서비스·화면으로 요청 전달 |
| definition-service | 9293 | 프로세스 정의·폼 저장과 버전 |
| process-service | 9294 | 인스턴스 실행, 업무 목록, 이벤트 수신(Kafka/폴링) |
| 웹 화면 | 5373 | 모델러, 업무 목록, 인스턴스·관리자 화면 |
| Keycloak · PostgreSQL | 8280 · 5632 | 사용자·그룹·역할, 엔진 저장소 |
Camunda를 써 본 분을 위해 차이점부터 설명합니다.
- 확장 속성은 JSON 한 덩어리. 작업마다
<uengine:properties json="…">에_type(예:org.uengine.kernel.FormActivity)과 설정을 넣습니다. 모델러 패널이 이 JSON을 고칩니다. - 레인 = 담당자 규칙. 레인에 Keycloak 그룹·역할을 설정하면 해당하는 사람들의 업무 목록에 레인의 작업이 표시됩니다. 선점(경합) 방식이면 한 사람이 가져갑니다.
- 이벤트 동기화. 작업에 이벤트 이름과 상관 키를 설정하면, 외부 시스템이 Kafka로 보낸 그 이벤트가 작업을 끝내고 payload가 프로세스 변수가 됩니다. 외부 시스템이 BPM API를 호출하지 않아도 됩니다.
이 튜토리얼의 갈래#
| 부 | 하는 일 |
|---|---|
| 시작하기 | 설치, 첫 프로세스 만들고 실행하기, API로 같은 일 하기 |
| 모델링 | 모델러, 프로세스 변수와 인스턴스 이름, 레인과 담당자, 작업 입력값과 데이터 매핑 |
| 사람 작업 | 폼, 업무 목록(선점), 반송과 SKIP, 다른 앱 화면을 작업으로 |
| 흐름 제어 | 배타·병렬·포괄 게이트웨이, 스크립트, 규칙표(DMN), 콜 액티비티, 다중 인스턴스 |
| 이벤트 | 이벤트로 시작하기, 이벤트로 작업 끝내기, 오류와 보상 |
| 시스템 연동 | REST 서비스 작업, SQL 작업, Kafka 이벤트 연동 |
| 운영 | 인스턴스 찾기, 변수 고치기, 되돌리기와 실패 다루기, 배포 전 시험, 버전, 분석 |
| API·보안 | REST API 레퍼런스, Keycloak 사용자·그룹·역할 |
| 산업 예제 | 금융 계정계, uEngine ERP 구매 발주 |
| 참고 | BPMN 지원 범위, 엔진 확장하기 |
각 장은 「무엇을 · 왜 → 따라 하기 → 설정 레퍼런스 → 확인 문제」 순서로 구성합니다. 따라 하기는 영상과 같은 순서로 진행합니다. 예제 회사는 가상 회사 가온가전입니다.
| 사람 | 로그인 | 하는 일 |
|---|---|---|
| 홍길동 | hong |
관리자. 프로세스를 그려 배포하고 운영 화면을 확인합니다 |
| 최구매 | choi |
구매 담당. 구매를 요청합니다 |
| 윤팀장 | yoon |
구매 팀장. 결재합니다 |
| 김대표 | kim |
대표. 큰 금액을 결재합니다 |
| 이재고 | lee |
재고 담당. 입고를 처리합니다 |
| 정회계 | jung |
회계 담당. 청구서와 지급을 처리합니다 |
먼저 알아 둘 것
- 화면과 결과는 로컬 스택(uEngine6
bmt/sds-process-test브랜치, 프런트process-gpt-vue3-hli같은 이름의 브랜치)을 실제로 실행해 얻었습니다. 다른 브랜치에서는 화면이 다를 수 있습니다. - 이 브랜치에서 동작하지 않거나 우회가 필요한 기능은 장마다 「알려진 제약」으로 적었고, BPMN 지원 범위에 모았습니다. 안 되는 것을 되는 것처럼 보여 주지 않습니다.
- 예전 튜토리얼(bpm-intro.uengine.io)은 uEngine6 초기 화면 기준입니다. 새로 시작한다면 이 튜토리얼을 따라 주세요.