서브 워크플로우#
하나의 워크플로우에서 다른 워크플로우를 호출할 수 있습니다. 이렇게 하면 모듈식 마이크로서비스와 같은 워크플로우를 구축할 수 있습니다. 또한, 워크플로우가 충분히 커져서 메모리 문제에 직면할 경우 도움을 줄 수 있습니다. 서브 워크플로우를 생성하려면 Execute Workflow와 Execute Sub-workflow Trigger 노드를 사용합니다.
서브 워크플로우 설정 및 사용#
이 섹션에서는 부모 워크플로우와 서브 워크플로우 모두 설정하는 방법을 안내합니다.
하위 워크플로 생성하기#
-
새로운 워크플로를 생성합니다.
기존 워크플로에서 하위 워크플로 생성
기존 부모 워크플로에서 직접 하위 워크플로를 생성할 수도 있습니다. 이를 위해 Execute Sub-workflow 노드를 사용하세요. 노드에서 Database 및 From list 옵션을 선택한 후, 목록에서 Create a sub-workflow를 선택하세요.
-
선택 사항: 어떤 워크플로가 하위 워크플로를 호출할 수 있는지 설정합니다.
- 옵션(Options)
메뉴 > 설정(Settings) 을 선택합니다. n8n이 워크플로 설정(Workflow settings) 모달을 엽니다.
- 이 워크플로를 호출할 수 있는 워크플로(This workflow can be called by) 설정을 변경합니다. 자세한 설정 방법은 워크플로 설정 문서를 참고하세요.
- 옵션(Options)
-
Execute Sub-workflow 트리거 노드를 추가합니다. (트리거 노드에서 검색할 경우 When Executed by Another Workflow 로 표시될 수도 있습니다.)
-
입력 데이터 모드(Input data mode) 를 설정하여 하위 워크플로의 입력 데이터를 정의하는 방식을 선택합니다.
- 아래 필드를 사용하여 정의(Define using fields below): 호출하는 워크플로가 제공해야 할 개별 입력 이름과 데이터 유형을 지정합니다.
- JSON 예제를 사용하여 정의(Define using JSON example): 기대하는 입력 항목과 유형을 설명하는 JSON 예제를 제공합니다.
- 모든 데이터 수락(Accept all data): 모든 데이터를 조건 없이 허용합니다. 이 경우, 하위 워크플로는 필수 입력 항목을 정의하지 않으며, 입력 데이터의 일관성이나 누락된 값을 직접 처리해야 합니다.
-
하위 워크플로의 기능을 구현하는 데 필요한 다른 노드들을 추가합니다.
-
하위 워크플로를 저장합니다.
하위 워크플로에 오류가 없어야 함
하위 워크플로에 오류가 있으면 부모 워크플로에서 트리거할 수 없습니다.
하위 워크플로를 만들기 전에 데이터 로드
하위 워크플로를 구성하는 동안 데이터를 로드하려면 이전 실행에서 데이터 로드 기능이 필요합니다. 이 기능은 n8n Cloud 및 등록된 커뮤니티 플랜에서 사용할 수 있습니다.
하위 워크플로에서 데이터를 로드하려면:
- 하위 워크플로를 생성하고 Execute Sub-workflow Trigger 노드를 추가합니다.
- 노드의 입력 데이터 모드(Input data mode) 를 모든 데이터 수락(Accept all data) 으로 설정하거나, 이미 입력 항목을 알고 있다면 필드 또는 JSON을 사용하여 정의합니다.
- 하위 워크플로의 설정에서 성공한 프로덕션 실행 저장(Save successful production executions) 옵션을 저장(Save) 으로 변경합니다.
- 부모 워크플로 설정 단계로 이동하여 실행을 실행합니다.
- 이전 실행에서 데이터 로드 단계를 따릅니다.
- 필요하면 입력 데이터 모드 를 부모 워크플로에서 전송하는 입력 데이터에 맞게 조정합니다.
이제 트리거 노드에서 예제 데이터를 고정(Pin)할 수 있으며, 실제 데이터를 사용하여 워크플로를 구성할 수 있습니다.
하위 워크플로 호출하기#
- 하위 워크플로를 호출할 워크플로를 엽니다.
- Execute Sub-workflow 노드를 추가합니다.
-
Execute Sub-workflow 노드에서 호출할 하위 워크플로를 설정합니다.
워크플로를 다음 방법 중 하나로 호출할 수 있습니다.- 워크플로 ID로 호출
- 로컬 파일에서 워크플로 로드
- 노드의 매개변수로 워크플로 JSON 추가
- URL을 통해 워크플로 호출
워크플로 ID 찾기
하위 워크플로의 ID는 해당 URL의 마지막 부분에 있는 영숫자 문자열입니다.
-
하위 워크플로에서 정의한 필수 입력 항목을 입력합니다.
- 워크플로를 저장합니다.
이제 워크플로가 실행될 때 하위 워크플로로 데이터를 전송하고 실행을 진행합니다.
부모 워크플로에서 하위 워크플로 실행 흐름을 추적하려면 Execute Sub-workflow 노드에서 하위 실행 보기(View sub-execution) 링크를 선택하세요.
반대로 하위 워크플로의 실행에서 부모 워크플로 실행으로 이동할 수도 있습니다.
워크플로우 간 데이터 흐름#
예를 들어, 워크플로 A(Workflow A) 에 Execute Sub-workflow 노드가 있다고 가정해 보겠습니다.
이 노드는 워크플로 B(Workflow B) 를 호출합니다.
- Execute Sub-workflow 노드는 데이터를 워크플로 B 의 Execute Sub-workflow Trigger 노드(캔버스에서는 "When executed by another node"로 표시됨)로 전달합니다.
- 워크플로 B 의 마지막 노드는 처리된 데이터를 워크플로 A 의 Execute Sub-workflow 노드로 다시 반환합니다.