4.7. 실행 흐름을 결정하기 위해 통합 데이터 평가
흐름에서 조건부 흐름 단계는 사용자가 지정하는 조건에 대해 통합 데이터를 평가합니다.In a flow, a Conditional Flows step evaluates integration data against conditions that you specify. 지정된 각 조건에 대해 해당 조건과 연결된 흐름에 연결 및 기타 단계를 추가합니다. 실행 중에 조건부 흐름 단계는 들어오는 데이터를 평가하여 실행할 흐름을 결정합니다.
다음 주제에서는 세부 정보를 제공합니다.
4.7.1. 조건부 흐름 단계의 동작
통합 개발 중에 흐름에 조건부 흐름 단계를 추가하고 하나 이상의 조건을 정의할 수 있습니다. 각 조건에 대해 해당 조건과만 연결된 조건부 흐름에 단계를 추가합니다. 통합 실행 중에 이전 통합 단계가 조건 흐름 단계로 전달되는 각 메시지에 대해 Conditional Flows 단계는 조건을 지정하기 위해 Fuse Online 페이지에서 지정된 조건에 대해 메시지 콘텐츠를 평가합니다.
조건 흐름 단계에서 다음 동작 중 하나입니다.In a Conditional Flows step, the behavior is one of the following:
- true로 평가되는 첫 번째 조건의 경우 통합은 해당 조건과 연결된 조건부 흐름을 실행합니다.
- true로 평가되는 조건이 없고 기본 조건부 흐름이 있는 경우 통합은 해당 흐름을 실행합니다.
- 조건이 true로 평가되지 않고 기본 조건부 흐름이 없는 경우 통합에서 조건부 흐름을 실행하지 않습니다.
조건부 흐름을 실행하거나 조건이 true로 평가되지 않고 기본 조건부 흐름이 없는 후 통합은 기본 흐름의 다음 단계를 실행합니다.
4.7.2. 조건부 흐름 단계의 예
통합이 SQL 데이터베이스에 연결하여 각 직원이 PTO(Payment-Time-off)에 대한 정보를 얻을 수 있다고 가정합니다. 반환된 데이터는 다음을 나타냅니다.
- 일부 직원은 특정 날짜에 사용하지 않는 경우 PTO를 손실할 수 있습니다.
- 다른 직원은 이미 받은 것보다 더 많은 PTO를 사용했습니다.
- 나머지 직원은 시간 제한없이 사용할 수있는 PTO를 보유하고 있습니다.
조건 흐름 단계에서 이 예제 통합에서는 두 가지 조건, 각 조건에 대한 실행 흐름 및 기본 실행 흐름을 정의할 수 있습니다.In a Conditional Flows step, this example integration can define two conditions, an execution flow for each condition, and a default execution flow:
- PTO가 일부 숫자보다 크면 특정 날짜에 사용하지 않는 경우 일부 PTO가 손실될 수 있음을 나타냅니다. 이 조건이 true로 평가되면 통합은 영향을 받는 직원에게 이메일을 보내는 흐름을 실행합니다. 이메일에는 사용해야 하는 PTO 양과 사용해야 하는 날짜가 포함되어 있습니다.
- PTO가 음수인 경우 일부 PTO가 사용되었지만 취득되지 않았음을 나타냅니다. 이 조건이 true로 평가되면 통합은 영향을 받는 직원에게 이메일을 보내는 흐름을 실행합니다. 이메일에는 직원이 초과한 PTO의 양이 포함되어 있으며 직원이 PTO를 다시 누적하기 시작하는 날짜를 지정합니다.
- 두 조건 중 어느 것도 true로 평가되지 않으면 통합에서 기본 흐름을 실행합니다. 이 예제 통합은 PTO가 음수가 아니거나 지정된 숫자보다 큰 직원에 대해 기본 조건부 흐름을 실행합니다. 기본 흐름은 직원이 가지고 있는 PTO 양과 함께 해당 직원에게 이메일을 보냅니다.
4.7.3. 조건부 흐름 단계를 구성하는 일반 절차
조건 흐름 단계를 흐름에 추가한 후 단계를 구성하는 워크플로는 다음 이미지에 표시된 것과 같습니다.After you add a Conditional Flows step to a flow, the workflow for configuring the step is as shown in the following image:
워크플로우에 대한 추가 정보
- 기본 표현식 빌더는 평가할 콘텐츠가 포함된 속성과 테스트할 조건과 값을 입력하라는 메시지를 표시합니다. 기본 표현식 빌더는 대부분의 조건부 흐름 단계에 적합합니다.
- 고급 표현식 빌더를 사용하면 Camel Simple Language에서 조건부 표현식을 지정할 수 있습니다.
- 모든 조건에 동일한 표현식 빌더를 사용해야 합니다. 즉, 조건부 흐름 단계를 구성하려면 기본 표현식 빌더 또는 고급 표현식 빌더를 사용해야 합니다. 둘 다 사용할 수 없습니다.
- 조건부 흐름에서는 조건 흐름 단계를 추가할 수 없습니다.
4.7.4. 기본 표현식 빌더를 사용하여 조건 지정
흐름에서 들어오는 데이터를 평가하여 통합의 실행 경로를 결정하려는 조건부 흐름 단계를 추가합니다. 여기에 설명된 절차는 기본 표현식 빌더를 사용하여 조건을 지정하는 방법을 보여줍니다.
사전 요구 사항
- 기본 흐름을 만들거나 편집하고 있습니다. 간단한 통합인 경우 시작 및 완료 연결이 추가되었습니다.
- 조건 흐름 단계에 대한 입력은 개별 메시지여야 합니다. 통합 시각화에서 이전 단계의 데이터 유형 표시 (Collection) 가 표시(Collection)인 경우 이전 단계 후 및 이 조건부 흐름 단계 앞에 분할 단계를 추가합니다.
- 통합이 조건 흐름 단계로 전달되는 메시지에 표시될 필드에 익숙합니다.
절차
- 통합 시각화에서 조건부 흐름 단계를 추가하려면 을 클릭합니다.
- 조건부 흐름을 클릭합니다.
- 기본 표현식 빌더 항목에서 Select 를 클릭합니다.
조건 흐름 구성 페이지에서 하나 이상의 조건을 정의합니다.
- 초기 When 필드를 클릭합니다.
- 속성 목록에서 조건 흐름 단계에서 평가할 콘텐츠가 포함된 속성을 클릭합니다.In the list of properties, click the property that contains the content that you want the Conditional Flows step to evaluate.
- 다음 필드에서 단계가 데이터를 평가하거나 다른 조건을 선택하는 조건으로 Contains 를 수락합니다. 이 필드에서 선택한 조건은 다음 필드에 입력하는 값에 대해 true로 평가되어야 합니다.
- 세 번째 필드에서 조건이 테스트되는 값을 지정합니다.
- 선택 사항: 다른 조건 추가 를 클릭하여 다른 조건을 지정합니다.
- 정의할 각 추가 조건에 대해 이 단계를 반복합니다.
- 선택 사항: 조건 오른쪽에 있는 위쪽 또는 아래쪽 화살표를 클릭하여 통합에서 정의된 조건을 평가하는 순서를 변경합니다.
선택 사항: 기본 조건부 흐름이 되도록 하려면 기본 흐름 실행을 클릭합니다.
실행 중에 지정한 조건이 true로 평가되지 않으면 통합에서 기본 조건 흐름을 실행합니다.If you select Execute default flow, during execution, if none of the conditions that you specified evaluates to true, the integration executes the default condition flow. 실행 중에 지정한 조건이 true로 평가되지 않으면 이 조건 흐름 단계를 따릅니다.If you do not select Execute default flow, during execution, if none of the conditions that you specified evaluates to true, the integration continues execution with the step that follows this Conditional Flows step.
- 다음을 클릭합니다.
- 선택 사항: Fuse Online에서 메시지를 표시하는 경우 출력 데이터 유형을 지정합니다. 이 조건부 흐름 단계에 속하는 모든 조건부 흐름에 는 동일한 출력 유형이 있어야 합니다.
다음을 클릭합니다.
Fuse Online은 흐름 시각화를 표시합니다. 추가하는 조건부 흐름 단계 아래에는 사용자가 지정한 각 조건에 대한 항목이 있으며 Conditional Flows 단계에 기본 흐름이 있음을 나타내는 경우 otherwise 기본 흐름에 대한 항목이 있습니다.Below the Conditional Flows step that you are adding, there is an entry for each condition that you specified, as well as an entry for an otherwise default flow if you indicated that the Conditional Flows step has a default flow.
다음 단계
각 조건에 대해 연결된 흐름에 단계를 추가합니다. 기본 흐름이 있는 경우 기본 흐름에 단계를 추가합니다.
추가 리소스
- 각 조건의 중간 필드에서 선택할 수 있는 조건에 대한 자세한 내용은 Camel Simple Language Operator 를 참조하십시오. matches 조건은 Simple Language regex Operator에 해당합니다.
- 기본 표현식 빌더를 사용하여 필요한 조건을 정의할 수 없는 경우 고급 표현식 빌더 사용을 참조하여 조건을 지정합니다.
4.7.5. 고급 표현식 빌더를 사용하여 조건 지정
흐름에서 들어오는 데이터를 평가하여 통합의 실행 경로를 결정하려는 조건부 흐름 단계를 추가합니다. 여기에서 설명하는 절차는 고급 표현식 빌더를 사용하여 Camel Simple Language에서 조건부 표현식을 지정하는 방법을 보여줍니다.
사전 요구 사항
- 기본 흐름을 만들거나 편집하고 있습니다. 간단한 통합인 경우 시작 및 완료 연결이 추가되었습니다.
- 조건 흐름 단계에 대한 입력은 개별 메시지여야 합니다. 통합 시각화에서 이전 단계의 데이터 유형 표시 (Collection) 를 표시하는 경우 분할 단계를 추가합니다.
- 통합이 조건 흐름 단계로 전달되는 메시지에 표시될 필드에 익숙합니다.
- Camel Simple Expression 언어에 익숙하거나 평가하려는 조건에 대한 표현식이 있습니다.
절차
- 통합 시각화에서 조건부 흐름 단계를 추가하려면 을 클릭합니다.
- 조건부 흐름을 클릭합니다.
- 고급 표현식 빌더 항목에서 Select 를 클릭합니다.
조건 흐름 구성 페이지에서 하나 이상의 조건을 정의합니다.
초기 When 필드에 Camel Simple Language 조건부 표현식을 입력합니다. 표현식 왼쪽은 ${…}로 묶은 변수 표현식이어야 합니다.
다음은 유효한 표현식의 예입니다.
${header.type} == 'note'
${body.title} contains 'Important'
다음은 잘못된 표현식의 예입니다.
'note' == ${header.type}
다음은 메시지의 본문에
160
보다 큰pto
필드가 포함된 경우 true로 평가되는 표현식을 작성하는 방법을 보여줍니다.${body.pto} > 160
이 표현식이 true로 평가되면 통합에서 만들고 이 조건과 연결하는 조건부 흐름을 실행합니다.
참고식에서 조건 흐름 단계가 다음 종류의 흐름 중 하나에 있을 때 추가 속성 사양이 필요합니다.In an expression, an additional property specification is required when the Conditional Flows step is in one of the following kinds of flows:
- API 공급자 통합 작업 흐름
- Webhook 연결로 시작하는 간단한 통합
- 사용자 정의 REST API 연결로 시작하는 간단한 통합
이러한 흐름에서 Fuse Online은
본문
속성 내에 실제 메시지 콘텐츠를 래핑합니다. 즉, Conditional Flows 단계에 대한 입력에는 실제 메시지 콘텐츠가 포함된 다른본문
속성이 포함된 본문 속성이 포함됩니다.결과적으로 이러한 종류의 흐름 중 하나에 있는 조건부 흐름 단계에 있는 식에서 본문의 두 인스턴스를 지정해야 합니다.Consequently, in an expression that is in a Conditional Flows step that is in one of these kinds of flows, you must specify two instances of
body
. 예를 들어 입력 메시지의pto
필드에 있는 콘텐츠를 평가한다고 가정합니다. 다음과 같이 표현식을 지정합니다.${body.body.pto} > 160
- 선택 사항: 다른 조건 추가 를 클릭하고 이전 단계를 반복합니다. 정의할 각 추가 조건에 대해 이 작업을 수행합니다.
- 선택 사항: 조건 필드 오른쪽에 있는 위쪽 또는 아래쪽 화살표를 클릭하여 조건 흐름 단계가 정의된 조건을 평가하는 순서를 변경합니다.Change the order in which the Conditional Flows step evaluates the defined conditions by clicking the up or down arrow to the right of a condition field.
선택 사항: 기본 조건부 흐름이 되도록 하려면 기본 흐름 실행을 클릭합니다.
실행 중에 지정한 조건이 true로 평가되지 않으면 통합에서 기본 조건 흐름을 실행합니다.If you select Execute default flow, during execution, if none of the conditions that you specified evaluates to true, the integration executes the default condition flow. 실행 중에 지정한 조건이 true로 평가되지 않으면 이 조건 흐름 단계를 따릅니다.If you do not select Execute default flow, during execution, if none of the conditions that you specified evaluates to true, the integration continues execution with the step that follows this Conditional Flows step.
- 다음을 클릭합니다.
- 선택 사항: Fuse Online에서 메시지를 표시하는 경우 출력 데이터 유형을 지정합니다. 이 조건부 흐름 단계에 속하는 모든 조건부 흐름에 는 동일한 출력 유형이 있어야 합니다.
다음을 클릭합니다.
Fuse Online은 흐름 시각화를 표시합니다. 추가하는 조건부 흐름 단계 아래에는 사용자가 지정한 각 조건에 대한 항목이 있으며 Conditional Flows 단계에 기본 흐름이 있음을 나타내는 경우 otherwise 기본 흐름에 대한 항목이 있습니다.Below the Conditional Flows step that you are adding, there is an entry for each condition that you specified, as well as an entry for an otherwise default flow if you indicated that the Conditional Flows step has a default flow.
다음 단계
각 조건에 대해 연결된 흐름에 단계를 추가합니다. 기본 흐름이 있는 경우 기본 흐름에 단계를 추가합니다.
추가 리소스
4.7.6. 조건부 흐름에 단계 추가
조건 흐름 단계에서 조건을 정의한 후 각 조건에 대해 해당 조건과 연결된 흐름에 단계를 추가합니다.In a Conditional Flows step, after you define conditions, for each condition, add steps to the flow that is associated with that condition. 실행 중에 조건 흐름 단계가 조건을 true로 평가하면 해당 조건과 연결된 흐름을 실행합니다.During execution, when the Conditional Flows step evaluates a condition as true, it executes the flow that is associated with that condition.
사전 요구 사항
- 이 조건부 흐름 단계에 대한 조건을 정의했습니다.
- 통합이 이 조건 흐름 단계로 전달되는 메시지에 있을 필드에 대해 잘 알고 있습니다.
- 조건부 흐름에 추가할 각 연결을 생성했습니다.
절차
통합 시각화에서 추가하려는 흐름의 조건에 대해 흐름 열기를 클릭합니다.In the integration visualization, for the condition whose flow you want to add to, click Open Flow.
Fuse Online은 페이지 상단에 해당 조건을 표시합니다. 조건부 흐름 시각화는 모든 조건부 흐름에 있는 흐름 시작 및 흐름 종료 단계를 보여줍니다.
- 흐름 시각화에서 이 조건부 흐름에 단계를 추가할 를 클릭합니다.
추가할 단계를 클릭합니다. 기본 흐름에 추가할 수 있는 연결 또는 단계를 추가할 수 있습니다.
흐름 시작 단계의 출력은 이 조건 흐름 단계 이전의 기본 흐름 단계의 출력과 항상 동일합니다. 예를 들어 필터 단계 또는 데이터 매퍼 단계를 이 조건부 흐름에 추가하는 경우 사용 가능한 필드는 기본 흐름에서 사용할 수 있는 필드와 동일합니다.
- 필요에 따라 단계를 구성합니다.
- 이 조건부 흐름에 추가할 각 단계에 대해 이전 세 명령을 반복합니다.
- 페이지 상단의 흐름 필드에서 아래쪽을 클릭하고 기본 흐름으로 돌아가 이 조건부 흐름을 저장하고 기본 흐름을 표시하는 기본 흐름을 클릭합니다.At the top of the page, in the Flow field, click the down carat and click Back to primary flow, which saves this conditional flow and displays the primary flow.
- 추가할 각 조건부 흐름에 대해 이 절차를 반복합니다.
결과
기본 흐름에는 조건 흐름 단계에서 정의한 각 조건에 대한 조건부 흐름이 있습니다. 기본 실행 흐름 옵션을 선택한 경우 기본 흐름에도 기본 조건 흐름이 있습니다.
실행 중에 조건부 흐름 단계는 true로 평가되는 첫 번째 조건과 연결된 조건부 흐름을 실행합니다.During execution, the Conditional Flows step executes the conditional flow that is associated with the first condition that evaluates to true. 그런 다음 통합은 조건 흐름 단계를 따르는 단계를 실행합니다.
조건이 true로 평가되지 않으면 Conditional Flows 단계가 기본 조건 흐름을 실행합니다. 그런 다음 통합은 조건 흐름 단계를 따르는 단계를 실행합니다.
다음 두 항목이 모두 true인 경우:
- 조건이 true로 평가되지 않습니다.
- 기본 조건부 흐름은 없습니다.
그런 다음 통합은 조건 흐름 단계를 따르는 단계를 실행합니다.