logologo
시작
가이드
개발
플러그인
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
logologo
워크플로우
개요
빠른 시작

트리거

개요
테이블 이벤트
예약된 작업
액션 전 이벤트
액션 후 이벤트
사용자 정의 액션 이벤트
승인
Webhook

노드

개요

인공지능

대규모 언어 모델

흐름 제어

조건
다중 조건 분기
반복
변수
병렬 분기
워크플로우 호출
플로우 출력
JSON 변수 매핑
지연
종료

계산

계산
날짜 계산
JSON 계산

데이터 작업

데이터 생성
데이터 업데이트
데이터 조회
데이터 삭제
SQL 작업

수동 처리

수동 처리
승인
참조

유형 확장

HTTP 요청
JavaScript 스크립트
알림
이메일 발송
응답
응답 메시지
변수
실행 기록
버전 관리
고급 옵션

확장 개발

개요
트리거 유형 확장
노드 유형 확장
API 참조
Previous Page액션 후 이벤트
Next Page승인
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#사용자 정의 작업 이벤트

This feature is provided by the commercial plugin «워크플로우: 사용자 지정 액션 이벤트», please purchase to use

#소개

NocoBase에는 일반적인 데이터 작업(생성, 읽기, 업데이트, 삭제 등)이 내장되어 있습니다. 이러한 작업이 복잡한 비즈니스 요구 사항을 충족하지 못할 때, 워크플로우에서 사용자 정의 작업 이벤트를 사용하고 이 이벤트를 페이지 블록의 "워크플로우 트리거" 버튼에 바인딩할 수 있습니다. 사용자가 버튼을 클릭하면 사용자 정의 작업 워크플로우가 트리거됩니다.

#워크플로우 생성

워크플로우를 생성할 때 "사용자 정의 작업 이벤트"를 선택합니다.

사용자 정의 작업 이벤트 워크플로우 생성

#트리거 설정

#컨텍스트 유형

v.1.6.0+

컨텍스트 유형에 따라 워크플로우를 바인딩할 수 있는 블록 버튼이 결정됩니다.

  • 컨텍스트 없음: 전역 이벤트로, 작업 패널 및 데이터 블록의 작업 버튼에 바인딩할 수 있습니다.
  • 단일 레코드: 테이블 데이터 행, 폼, 상세 정보 등 데이터 블록의 작업 버튼에 바인딩할 수 있습니다.
  • 다중 레코드: 테이블의 일괄 작업 버튼에 바인딩할 수 있습니다.

트리거 설정_컨텍스트 유형

#컬렉션

컨텍스트 유형이 단일 레코드 또는 다중 레코드일 때, 데이터 모델을 바인딩할 컬렉션을 선택해야 합니다.

트리거 설정_컬렉션 선택

#사용할 관계 데이터

워크플로우에서 트리거되는 데이터 행의 관계 데이터를 사용해야 하는 경우, 여기서 심층 관계 필드를 선택할 수 있습니다.

트리거 설정_사용할 관계 데이터 선택

이 필드들은 이벤트가 트리거된 후 워크플로우 컨텍스트에 자동으로 미리 로드되어 워크플로우에서 사용할 수 있게 됩니다.

#작업 설정

워크플로우에 설정된 컨텍스트 유형에 따라 각 블록의 작업 버튼 설정이 달라집니다.

#컨텍스트 없음

v.1.6.0+

작업 패널 및 다른 데이터 블록에 "워크플로우 트리거" 버튼을 추가할 수 있습니다.

블록에 작업 버튼 추가_작업 패널

블록에 작업 버튼 추가_캘린더

블록에 작업 버튼 추가_간트 차트

버튼을 추가한 후 이전에 생성한 컨텍스트 없는 워크플로우를 바인딩합니다. 작업 패널의 버튼을 예로 들어 설명합니다.

버튼에 워크플로우 바인딩_작업 패널

바인딩할 워크플로우 선택_컨텍스트 없음

#단일 레코드

모든 데이터 블록에서 폼, 테이블 행, 상세 정보 등 단일 레코드의 작업 표시줄에 "워크플로우 트리거" 버튼을 추가할 수 있습니다.

블록에 작업 버튼 추가_폼

블록에 작업 버튼 추가_테이블 행

블록에 작업 버튼 추가_상세 정보

버튼을 추가한 후 이전에 생성한 워크플로우를 바인딩합니다.

버튼에 워크플로우 바인딩

바인딩할 워크플로우 선택

이 버튼을 클릭하면 사용자 정의 작업 이벤트가 트리거됩니다.

버튼 클릭 결과

#다중 레코드

v.1.6.0+

테이블 블록의 작업 표시줄에 "워크플로우 트리거" 버튼을 추가할 때, 컨텍스트 유형을 "컨텍스트 없음" 또는 "다중 레코드"로 선택하는 추가 옵션이 있습니다.

블록에 작업 버튼 추가_테이블

"컨텍스트 없음"을 선택하면 전역 이벤트이므로 컨텍스트 없는 워크플로우만 바인딩할 수 있습니다.

"다중 레코드"를 선택하면 다중 레코드 유형의 워크플로우를 바인딩할 수 있으며, 여러 레코드를 선택한 후 일괄 작업에 사용할 수 있습니다(현재 테이블에서만 지원). 이때 선택 가능한 워크플로우는 현재 데이터 블록의 컬렉션과 일치하도록 설정된 워크플로우로 제한됩니다.

20250215224436

버튼을 클릭하여 트리거할 때, 테이블에서 일부 데이터 행이 선택되어 있어야 합니다. 그렇지 않으면 워크플로우가 트리거되지 않습니다.

20250215224736

#예시

예를 들어, "샘플" 컬렉션이 있다고 가정해 봅시다. "수집됨" 상태의 샘플에 대해 "검사 제출" 작업을 제공해야 합니다. 이 작업은 먼저 샘플의 기본 정보를 확인하고, "검사 기록" 데이터를 생성한 다음, 샘플 상태를 "제출됨"으로 변경합니다. 이 일련의 과정은 간단한 "생성, 읽기, 업데이트, 삭제" 버튼 클릭만으로는 완료할 수 없으므로, 사용자 정의 작업 이벤트를 사용하여 구현할 수 있습니다.

먼저 "샘플" 컬렉션과 "검사 기록" 컬렉션을 생성하고, 샘플 컬렉션에 기본적인 테스트 데이터를 입력합니다.

예시_샘플 컬렉션

그런 다음 "사용자 정의 작업 이벤트" 워크플로우를 생성합니다. 작업 프로세스에서 즉각적인 피드백이 필요한 경우 동기 모드를 선택할 수 있습니다(동기 모드에서는 수동 처리와 같은 비동기 유형의 노드를 사용할 수 없습니다).

예시_워크플로우 생성

트리거 설정에서 컬렉션으로 "샘플"을 선택합니다.

예시_트리거 설정

비즈니스 요구 사항에 따라 프로세스 내의 로직을 구성합니다. 예를 들어, 지표 매개변수가 90보다 클 때만 검사 제출을 허용하고, 그렇지 않으면 관련 문제를 알리는 메시지를 표시합니다.

예시_비즈니스 로직 구성

팁

"응답 메시지" 노드는 동기 사용자 정의 작업 이벤트에서 클라이언트에 알림 메시지를 반환하는 데 사용할 수 있습니다. 비동기 모드에서는 사용할 수 없습니다.

워크플로우를 설정하고 활성화한 후, 테이블 인터페이스로 돌아가 테이블의 작업 열에 "워크플로우 트리거" 버튼을 추가합니다.

예시_작업 버튼 추가

그런 다음 버튼의 설정 메뉴에서 워크플로우 바인딩을 선택하여 설정 팝업을 엽니다.

예시_워크플로우 바인딩 팝업 열기

이전에 활성화한 워크플로우를 추가합니다.

예시_워크플로우 선택

제출 후, 버튼 텍스트를 "검사 제출"과 같은 작업 이름으로 변경하면 설정 과정이 완료됩니다.

사용할 때는 테이블에서 아무 샘플 데이터를 선택하고 "검사 제출" 버튼을 클릭하면 사용자 정의 작업 이벤트가 트리거됩니다. 이전에 구성된 로직에 따라, 샘플 지표 매개변수가 90 미만이면 클릭 후 다음과 같은 메시지가 표시됩니다.

예시_지표가 검사 제출 기준을 충족하지 않음

지표 매개변수가 90보다 크면 프로세스가 정상적으로 실행되어 "검사 기록"이 생성되고 샘플 상태가 "제출됨"으로 변경됩니다.

예시_검사 제출 성공

이로써 간단한 사용자 정의 작업 이벤트가 완료되었습니다. 마찬가지로 주문 처리, 보고서 제출 등 복잡한 작업이 필요한 비즈니스에서도 사용자 정의 작업 이벤트를 통해 구현할 수 있습니다.

#외부 호출

사용자 정의 작업 이벤트는 사용자 인터페이스 작업뿐만 아니라 HTTP API 호출을 통해서도 트리거할 수 있습니다. 특히, 사용자 정의 작업 이벤트는 모든 컬렉션 작업에 대해 워크플로우를 트리거하는 새로운 작업 유형인 trigger를 제공하며, NocoBase 표준 작업 API를 사용하여 호출할 수 있습니다.

예시에서 버튼으로 트리거되는 워크플로우는 다음과 같이 호출할 수 있습니다.

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' \
  "http://localhost:3000/api/samples:trigger/<:id>?triggerWorkflows=workflowKey"

이 작업은 단일 레코드에 대한 것이므로, 기존 데이터에 대해 호출할 때 URL의 <:id> 부분을 데이터 행의 ID로 대체하여 지정해야 합니다.

폼에 대해 호출하는 경우(예: 생성 또는 업데이트), 새 데이터를 생성하는 폼의 경우 ID를 전달하지 않아도 되지만, 실행 컨텍스트로 제출된 데이터를 전달해야 합니다.

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Sample 1",
    "indicator": 91
  }'
  "http://localhost:3000/api/samples:trigger?triggerWorkflows=workflowKey"

업데이트 폼의 경우, 데이터 행의 ID와 업데이트할 데이터를 모두 전달해야 합니다.

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' -d \
  '{
    "title": "Sample 1",
    "indicator": 91
  }'
  "http://localhost:3000/api/samples:trigger/<:id>?triggerWorkflows=workflowKey"

ID와 데이터를 동시에 전달하면, 먼저 ID에 해당하는 데이터 행이 로드되고, 그 다음 전달된 데이터 객체의 속성을 사용하여 원본 데이터 행을 덮어써서 최종 트리거 데이터 컨텍스트를 얻게 됩니다.

주의

관계 데이터가 전달되면 해당 데이터도 덮어쓰여집니다. 특히 관계 데이터 항목을 미리 로드하도록 설정된 경우, 관계 데이터가 예상치 않게 덮어쓰여지는 것을 방지하기 위해 전달되는 데이터를 신중하게 처리해야 합니다.

또한, URL 매개변수 triggerWorkflows는 워크플로우의 키이며, 여러 워크플로우 키는 쉼표로 구분합니다. 이 키는 워크플로우 캔버스 상단의 워크플로우 이름에 마우스를 올리면 확인할 수 있습니다.

워크플로우_키_확인 방법

위 호출이 성공하면 해당 samples 컬렉션의 사용자 정의 작업 이벤트가 트리거됩니다.

팁

외부 호출도 사용자 신원을 기반으로 해야 하므로, HTTP API를 통해 호출할 때 일반 인터페이스에서 보내는 요청과 마찬가지로 인증 정보를 제공해야 합니다. 여기에는 Authorization 요청 헤더 또는 token 매개변수(로그인 시 얻은 토큰)와 X-Role 요청 헤더(사용자의 현재 역할 이름)가 포함됩니다.

이 작업에서 일대일 관계 데이터(다대다 관계는 현재 지원되지 않음)에 대한 이벤트를 트리거해야 하는 경우, 매개변수에서 !를 사용하여 관계 필드의 트리거 데이터를 지정할 수 있습니다.

curl -X POST -H 'Authorization: Bearer <your token>' -H 'X-Role: <roleName>' \
  "http://localhost:3000/api/posts:trigger/<:id>?triggerWorkflows=workflowKey!category"

위 호출이 성공하면 해당 categories 컬렉션의 사용자 정의 작업 이벤트가 트리거됩니다.

팁

HTTP API 호출을 통해 작업 후 이벤트를 트리거할 때, 워크플로우의 활성화 상태와 컬렉션 설정이 일치하는지 주의해야 합니다. 그렇지 않으면 호출이 성공하지 않거나 오류가 발생할 수 있습니다.