Azure Logic Apps에서 특정 값에 따라 워크플로 작업을 실행하는 switch 작업을 만듭니다.

적용 대상: Azure Logic Apps(소비)

개체, 식 또는 토큰의 값에 따라 특정 작업을 실행하려면 switch 작업을 추가합니다. 이 구조는 개체, 식 또는 토큰을 평가하고, 결과와 일치하는 케이스를 선택하고, 해당 케이스에 대한 특정 작업만 실행합니다. switch 작업이 실행되는 경우 하나의 케이스만 결과와 일치해야 합니다.

예를 들어 이메일에서 선택한 옵션에 따라 다른 단계를 수행하는 논리 앱이 필요하다고 가정합니다. 이 예에서 논리 앱은 웹 사이트의 RSS 피드에서 새 콘텐츠를 확인합니다. RSS 피드에 새 항목이 나타나면 논리 앱에서 승인자에게 이메일을 보냅니다. 승인자가 "승인" 또는 "거부"를 선택하는지 여부에 따라 논리 앱에서 서로 다른 단계를 수행합니다.

모든 프로그래밍 언어와 마찬가지로 Switch 작업도 같음 연산자만을 지원합니다. 다른 관계형 연산자(예: “초과”)가 필요한 경우 조건 작업을 사용합니다. 결정적 실행 동작을 보장하려면 케이스에 동적 토큰 또는 식 대신 고유하고 정적인 값이 있어야 합니다.

사전 요구 사항

  • Azure 구독 구독이 없는 경우 Azure 체험 계정에 등록합니다.

  • 이 문서의 예제를 수행하려면 Outlook.com 계정이나 회사 또는 학교 계정을 사용하여 이 샘플 논리 앱을 만듭니다.

    1. 이메일을 보내는 작업을 추가할 때 대신 다음 작업을 찾아서 선택합니다. 승인 이메일 보내기

    2. 승인 이메일을 받는 사람의 이메일 주소와 같은 필수 필드를 입력합니다. 사용자 옵션 아래에서 "승인, 거부"를 입력합니다.

      이메일 세부 정보 입력

switch 작업 추가

  1. 이 예제에서는 샘플 워크플로 끝에 switch 작업을 추가합니다. 마지막 단계를 수행한 후 새 단계를 선택합니다.

    단계 사이에 switch 작업을 추가하려면 switch 작업을 추가하려는 화살표 위로 포인터를 이동합니다. 표시되는 더하기 기호( + )를 선택한 다음 작업 추가를 선택합니다.

  2. 검색 상자에 필터로 "switch"를 입력합니다. 현재 선택한 작업: Switch - 컨트롤

    switch 추가

    케이스와 기본 케이스가 하나씩 있는 switch 작업이 표시됩니다. switch 작업에는 케이스 하나 이상과 기본 케이스가 있어야 합니다.

    빈 기본 스위치 작업

  3. 켜기 상자 내부를 클릭하여 동적 콘텐츠 목록을 표시합니다. 이 목록에서 해당 출력에 따라 수행할 작업이 결정되는 SelectedOption 필드를 선택합니다.

  4. 승인자가 Approve 또는 Reject를 선택하는 케이스를 처리하려면 케이스기본 사이에 다른 케이스를 추가합니다.

    다른 케이스 추가

  5. 해당 케이스에 다음 작업을 추가합니다.

    케이스 # SelectedOption 작업
    케이스 1 승인 승인자가 승인을 선택한 경우에만 RSS 항목에 대한 세부 정보를 보내는 Outlook 이메일 보내기 작업을 추가합니다.
    케이스 2 거부 다른 승인자에게 RSS 항목이 거부되었음을 알리는 Outlook 이메일 보내기 작업을 추가합니다.
    기본값 None 필요한 작업이 없습니다. 이 예에서는 SelectedOption에 두 가지 옵션만 있으므로 기본 케이스는 비어 있습니다.

    완료된 스위치 작업

  6. 논리 앱을 저장합니다.

    이 예를 수동으로 테스트하려면 논리 앱에서 새 RSS 항목을 찾아서 승인 이메일을 보낼 때까지 실행을 선택합니다. 승인을 선택하여 결과를 관찰합니다.

JSON 정의

이제 switch 작업을 사용하여 논리 앱을 만들었으므로 switch 작업 뒤에 있는 상위 수준의 코드 정의를 살펴보겠습니다.

"Switch": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
           "Send_an_email": {}
         },
         "case" : "Approve"
      },
      "Case_2": {
         "actions": {
           "Send_an_email_2": {}
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": {}
   },
   "runAfter": {
      "Send_approval_email": [
         "Succeeded"
      ]
   }
}
레이블 Description
"Switch" switch 작업의 이름이며, 이 이름은 가독성을 높이기 위해 바꿀 수 있습니다.
"type": "Switch" 작업이 switch 작업임을 지정합니다.
"expression" 이 예에서는 각 케이스에 대해 평가되는 승인자의 선택된 옵션을 나중에 정의에서 선언한 대로 지정합니다
"cases" 임의 개수의 케이스를 정의합니다. 각 케이스에 대해 "Case_*"는 해당 케이스의 기본 이름이며, 이 이름은 가독성을 높이기 위해 바꿀 수 있습니다.
"case" 케이스의 값을 지정합니다. 이 값은 switch 작업에서 비교를 위해 사용하는 상수 및 고유 값이어야 합니다. switch 식 결과와 일치하는 케이스가 없으면 "default" 섹션의 작업이 실행됩니다.

지원 받기

다음 단계