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로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#컬렉션 이벤트

#소개

컬렉션 이벤트 유형의 트리거는 컬렉션의 생성, 업데이트, 삭제 이벤트를 수신합니다. 해당 컬렉션에 대한 데이터 작업이 발생하고 설정된 조건을 충족하면 해당 워크플로우를 트리거합니다. 예를 들어, 새 주문 생성 후 상품 재고를 차감하거나, 새 댓글 추가 후 수동 검토를 기다리는 등의 시나리오에 활용할 수 있습니다.

#기본 사용

컬렉션 변경에는 다음과 같은 몇 가지 경우가 있습니다:

  1. 데이터 생성 후.
  2. 데이터 업데이트 후.
  3. 데이터 생성 또는 업데이트 후.
  4. 데이터 삭제 후.

데이터표 이벤트_트리거 시점 선택

비즈니스 요구사항에 따라 트리거 시점을 선택할 수 있습니다. 변경 유형에 컬렉션 업데이트가 포함된 경우, 변경이 발생한 필드를 지정할 수도 있습니다. 선택한 필드가 변경될 때만 트리거 조건이 충족됩니다. 아무것도 선택하지 않으면 모든 필드의 변경이 트리거를 발생시킬 수 있습니다.

데이터표 이벤트_변경 필드 선택

더 자세히는, 트리거되는 데이터 행의 각 필드에 대해 조건 규칙을 설정할 수 있습니다. 해당 필드가 조건을 충족할 때만 트리거가 실행됩니다.

데이터표 이벤트_데이터 조건 설정

컬렉션 이벤트가 트리거되면, 이벤트를 발생시킨 데이터 행이 트리거 컨텍스트 데이터로 실행 계획에 주입됩니다. 이는 이후 워크플로우의 노드에서 변수로 사용될 수 있습니다. 하지만, 이후 노드에서 이 데이터의 관계 필드를 사용해야 하는 경우, 먼저 관계 데이터의 사전 로드를 설정해야 합니다. 선택된 관계 데이터는 트리거 후 컨텍스트에 함께 주입되며, 계층적으로 선택하여 사용할 수 있습니다.

#관련 팁

#일괄 데이터 작업 트리거는 현재 지원되지 않습니다.

컬렉션 이벤트는 현재 일괄 데이터 작업 트리거를 지원하지 않습니다. 예를 들어, 게시물 데이터를 생성하면서 해당 게시물의 여러 태그 데이터(일대다 관계 데이터)를 동시에 추가하는 경우, 게시물 생성 워크플로우만 트리거되며, 동시에 추가된 여러 태그는 태그 생성 워크플로우를 트리거하지 않습니다. 다대다 관계 데이터의 연결 및 추가 시에도 중간 컬렉션의 워크플로우는 트리거되지 않습니다.

#애플리케이션 외부의 데이터 작업은 트리거되지 않습니다.

HTTP API 호출을 통해 애플리케이션 인터페이스로 컬렉션을 조작하는 경우에도 해당 이벤트를 트리거할 수 있습니다. 하지만 NocoBase 애플리케이션을 통하지 않고 데이터베이스 작업을 통해 직접 발생한 데이터 변경은 해당 이벤트를 트리거할 수 없습니다. 예를 들어, 데이터베이스 자체의 트리거는 애플리케이션 내 워크플로우와 연결되지 않습니다.

또한, SQL 작업 노드를 사용하여 데이터베이스를 조작하는 것은 데이터베이스를 직접 조작하는 것과 같으므로 컬렉션 이벤트를 트리거하지 않습니다.

#외부 데이터 소스

워크플로우는 0.20 버전부터 외부 데이터 소스를 지원합니다. 외부 데이터 소스 플러그인을 사용하고 컬렉션 이벤트가 외부 데이터 소스로 설정된 경우, 해당 데이터 소스에 대한 데이터 작업이 애플리케이션 내에서 완료된 경우(사용자 생성, 업데이트 및 워크플로우 데이터 작업 등)에는 해당 컬렉션 이벤트를 트리거할 수 있습니다. 하지만 데이터 변경이 다른 시스템을 통해 발생하거나 외부 데이터베이스에서 직접 변경된 경우에는 컬렉션 이벤트를 트리거할 수 없습니다.

#예시

새 주문 생성 후 총액을 계산하고 재고를 차감하는 시나리오를 예로 들어보겠습니다.

먼저, 상품 컬렉션과 주문 컬렉션을 생성하며, 데이터 모델은 다음과 같습니다:

필드 이름필드 유형
상품 이름한 줄 텍스트
가격숫자
재고정수
필드 이름필드 유형
주문 번호자동 번호
주문 상품다대일 (상품)
주문 총액숫자

그리고 기본적인 상품 데이터를 추가합니다:

상품 이름가격재고
iPhone 14 Pro799910
iPhone 13 Pro59990

다음으로, 주문 컬렉션 이벤트를 기반으로 워크플로우를 생성합니다:

데이터표 이벤트_예시_새 주문 트리거

몇 가지 설정 항목은 다음과 같습니다:

  • 컬렉션: "주문" 컬렉션을 선택합니다.
  • 트리거 시점: "데이터 생성 후"를 선택합니다.
  • 트리거 조건: 비워둡니다.
  • 관계 데이터 사전 로드: "상품"을 선택합니다.

그런 다음, 워크플로우 로직에 따라 다른 노드를 설정합니다. 상품 재고가 0보다 큰지 확인하고, 0보다 크면 재고를 차감하며, 그렇지 않으면 주문을 무효화하고 삭제합니다:

데이터표 이벤트_예시_새 주문 워크플로우 오케스트레이션

노드 설정은 특정 노드 유형에 대한 소개 문서에서 자세히 설명됩니다.

이 워크플로우를 활성화하고 인터페이스를 통해 새 주문을 생성하여 테스트합니다. "iPhone 14 Pro"를 주문하면 해당 상품의 재고가 9로 줄어듭니다. 반면, "iPhone 13 Pro"를 주문하면 재고 부족으로 인해 주문이 삭제됩니다.

데이터표 이벤트_예시_새 주문 실행 결과