하위 플로우 빌드 중
워크플로우 스튜디오 는 하위 플로우를 생성하는 데 사용되는 기본 Now Platform 프로세스 자동화 작성기입니다. 워크플로우 스튜디오 편집기를 워크플로우 대체합니다.
플로우와 달리 하위 플로우에는 트리거가 없습니다. 다음과 같은 경우 하위 플로우를 사용합니다.
- 다른 플로우 또는 스크립트에서 호출하여 플로우를 시작하려고 합니다.
- 여러 플로우에 사용할 재사용 가능한 작업 집합을 만들려고 합니다.
- 하위 흐름이 시작될 때 사용할 수 있는 입력을 지정하려고 합니다.
- 하위 흐름이 종료된 후 상위 흐름에 사용할 수 있는 출력을 지정하려고 합니다.
모든 하위 플로우는 속성, 하나 이상의 입력, 하나 이상의 출력, 일련의 작업 및 플로우 논리, 수집되거나 생성된 데이터로 구성됩니다.
하위 플로우 속성
하위 플로우 속성은 하위 플로우 이름, 애플리케이션, 범주, 설명, 플로우 내 주석, 역할 및 상태를 지정합니다. Flow Designer는 언제든지 하위 플로우 이름, 범주, 설명, 흐름 내 주석 및 역할을 업데이트할 수 있지만 하위 흐름을 만드는 동안에만 애플리케이션을 설정할 수 있습니다. 하위 플로우 상태는 하위 플로우를 저장하거나 게시할 때 설정됩니다.
하위 플로우 입력
하위 플로우 입력은 하위 플로우가 시작될 때 사용할 수 있는 데이터를 지정합니다. 하위 플로우에 대해 정의하는 각 입력은 워크플로우 스튜디오 인터페이스의 구성 옵션이 됩니다. 플로우에서 하위 플로우를 사용하려면 플로우 디자이너가 각 필수 입력에 대한 값을 정의해야 합니다. 하위 흐름에 입력이 많을수록 더 많은 데이터 흐름 디자이너가 정의해야 하며 하위 흐름을 효과적으로 사용하려면 기본 데이터 모델에 더 익숙해야 합니다.
입력은 데이터 유형에 따라 고급 옵션을 제공합니다. 모든 입력에는 힌트를 추가하거나 기본값을 제공하는 고급 옵션이 있습니다. 플로우에 대한 하위 플로우를 추가 및 구성하여 Flow Designer를 안내하려면 고급 옵션을 사용합니다. 예를 들어, 선택이 가능한 미리 정의된 구성 옵션 목록을 Flow Designer에 제공하는 선택 입력을 만듭니다. 특정 데이터 유형에 사용할 수 있는 구성 옵션에 대한 자세한 내용은 필드 유형을 참조하십시오.
하위 플로우 출력
하위 플로우 출력은 하위 플로우가 완료된 후 상위 플로우에서 사용할 수 있는 데이터를 지정합니다. 하위 플로우 출력은 이름과 데이터 유형을 가진 변수로 정의됩니다. 하위 플로우 디자이너는 하위 플로우 출력 할당 플로우 논리를 사용하여 출력에 값을 할당합니다. 출력 값은 하위 플로우 논리 조건, 작업 결과 또는 수동으로 설정된 값을 기반으로 할 수 있습니다. 예를 들어, 출력은 조건이 충족될 때 하나의 값을 가지며 조건이 충족되지 않을 때 다른 값을 가질 수 있습니다. 런타임 중에 출력 값은 충족되는 조건에 따라 결정됩니다.
두 가지 조건이 모두 단일 출력 변수에 대한 값을 생성하는 하위 플로우의 다음 예를 고려하십시오. 변수 값은 런타임 중에 충족되는 조건에 따라 달라집니다.
- 출력
- [관리자 ID] [문자열]
- 동작
- 1 [사용자] 기록 조회(오늘 생성됨)
- 2 [[1->사용자 기록->제목]에 관리자가 포함되어 있는 경우) 하위 플로우 출력 [관리자 ID]을(를) [1->사용자 기록->사용자 ID]에 할당합니다.
- 3 그 외에는 하위 플로우 출력 [관리자 ID]을(를) [1->사용자 기록->관리자->사용자 ID]에 할당합니다.
이 경우 사용자의 직함에 "관리자"가 포함되어 있으면 사용자 ID가 출력으로 할당됩니다. 그렇지 않으면 하위 플로우가 사용자의 관리자를 조회하고 관리자의 사용자 ID를 출력으로 할당합니다.
워크플로우 스튜디오 동일한 변수에 대한 값을 여러 번 정의할 수 있습니다. 그러나 조건부 논리 없이 변수에 가능한 값이 두 개 이상 주어지면 런타임에 하위 플로우에 정의된 마지막 값만 출력에 적용됩니다.
- 출력
[관리자 ID] [문자열]입니다.
- 작업
- 1 [사용자] 기록 조회(오늘 생성됨)
- 2 하위 플로우 출력 [관리자 ID]을(를) [1->사용자 기록->사용자 ID]에 할당
- 3 하위 플로우 출력 [관리자 ID]을(를) [1->사용자 기록->관리자->사용자 ID]에 할당합니다.
이 예에서 작업 3은 작업 2의 값을 덮어쓰고 [1->User Record->Manager->User ID] 는 마지막으로 정의된 값이므로 런타임 시 [Manager ID] 출력에 적용됩니다. 일반적으로 조건부 플로우 논리가 사용되는 경우 하위 플로우는 하나의 변수에 대한 여러 값만 포함해야 합니다.
하위 플로우 실행 상세 정보
프로세스 분석가는 여러 위치에서 하위 플로우 실행 상세 정보를 볼 수 있습니다.
- 상위 플로우 실행 상세 정보
- 워크플로우 스튜디오 상위 플로우 실행 상세 정보 내에 하위 플로우 실행 상세 정보를 표시합니다. 상위 플로우 실행 상세 정보에는 각 하위 플로우가 인라인 요소로 나열됩니다. 하위 플로우 단계를 확장하여 실행 세부 정보를 볼 수 있습니다.
- 하위 플로우 실행 상세 정보
- 시스템은 각 하위 플로우 실행에 대한 플로우 실행 상세 정보를 생성합니다. 플로우 실행 목록에서 하위 플로우 실행 상세 정보를 직접 봅니다.
작업
플로우 디자이너는 작업 내에서 작업, 플로우 논리, 플로우 또는 기타 하위 플로우를 추가할 수 있습니다.
작업은 프로세스 분석가가 코드를 작성할 필요 없이 기능을 자동화 Now Platform 할 수 있게 해 주는 재사용 가능한 작업입니다. 예를 들어, 기록 생성 작업을 사용하면 프로세스 분석가가 특정 조건이 발생할 때 특정 테이블에 특정 값을 사용하여 기록을 생성할 수 있습니다. 기록 생성과 같은 ServiceNow 핵심 작업을 수행하려면 테이블과 필드에 대해 Now Platform 어느 정도 알고 있어야 합니다. 작업 디자이너는 애플리케이션별 작업을 생성하여 구성 상세 정보를 미리 설정할 수 있습니다. 예를 들어 인시던트 작업 생성 동작을 생성하면 프로세스 분석가가 해당 동작을 사용할 때마다 올바른 테이블과 필드 구성을 사용할 수 있습니다. 연결된 스포크를 활성화하여 애플리케이션별 작업을 추가할 수 있습니다.
플로우 로직
하위 플로우에는 조건부 또는 반복 작업을 지정하거나 하위 플로우 데이터에 출력 변수를 할당하는 플로우 로직 이 포함될 수 있습니다. 시스템은 다음과 같은 플로우 로직 옵션을 제공합니다.
| 플로우 로직 | 설명 |
|---|---|
| 각각에 대해 | 기록 목록의 각 기록에 작업을 적용합니다. 플로우 설계자는 하위 플로우 데이터에서 기록 목록을 지정해야 합니다. 주: For Each 플로우 로직 블록을 다른 플로우 로직 블록 내에 중첩하여 일련의 레코드에 대해 작업을 반복할 수 있습니다. 그러나 많은 레코드를 처리하는 중첩된 For Each 루프는 사용하지 마십시오. 중첩 루프를 사용하면 플로우가 1시간 이상 실행되지 않도록 하는 플로우 트랜잭션 할당량 규칙에 의해 중지될 때까지 플로우가 실행될 수 있습니다. 트랜잭션 할당량에 대한 자세한 내용은 트랜잭션 할당량을 참조하세요. |
| 만약 | 조건 목록이 충족되면 작업을 적용합니다. Flow Designer는 하위 흐름 데이터로 조건을 지정할 수 있습니다. If 조건이 추가되면 Else 또는 Else If 플로우 로직 옵션을 추가하여 조건이 충족되지 않을 때의 동작을 정의할 수 있습니다. |
| 하위 플로우 출력 할당 | 하위 플로우 데이터에 출력 변수를 할당합니다. 입력 및 출력에 정의된 출력에만 값을 할당할 수 있습니다. 출력을 할당하면 하위 플로우의 각 논리적 경로에 대해 서로 다른 출력 변수를 할당할 수 있습니다. |
추가 동작
추가 작업( ) 버튼을 클릭하여 하위 플로우에 대한 추가 옵션에 액세스합니다.
- 복사 작업
- 지정한 애플리케이션에서 열린 하위 플로우의 복사본을 만듭니다.
- 구성
- 초안 작업 표시, 트리거된 플로우 표시, 스토어 스포크 표시 및 인라인 스크립트 표시 토글 옵션을 활성화하거나 비활성화합니다.
- 코드 스니펫
- 작업에 대한 코드 스니펫을 생성합니다.
- 보안 관리
- Callable by Client API 옵션을 활성화하거나 비활성화합니다.
- 자연어 제목 관리
- 스타일 텍스트 또는 동적 텍스트로 하위 플로우 제목을 만들거나 편집합니다. 자세한 내용은 자연어 제목 관리를 참조하세요.
하위 플로우 테스트
하위 플로우를 단독으로 테스트하거나 플로우에 추가될 때 테스트할 수 있습니다. 하위 플로우만 테스트할 때는 하위 플로우가 동작에 사용하는 입력을 정의해야 합니다. 하위 플로우에는 트리거가 없기 때문에 하위 플로우를 테스트하면 정의된 입력 값을 사용하여 작업이 실행됩니다.
역할
하위 플로우에 액세스하려면 사용자에게 flow_designer 또는 관리자 역할이 있어야 합니다.
일반 가이드라인
플로우에 적용되는 일반 가이드라인은 하위 플로우에도 적용됩니다.
플로우 대신 하위 플로우를 사용하는 이유는 다음과 같습니다.
- 플로우에 트리거 또는 변수 입력이 필요한지 여부를 결정합니다.
- 플로우는 항상 트리거 조건이 충족될 때 실행됩니다. 트리거는 항상 플로우에 대한 입력과 동일한 데이터를 제공합니다. 대신 플로우를 시작하기 위해 변수 입력이 필요한 경우 하위 플로우를 생성합니다.
- 비즈니스 논리 재사용
- 재사용 가능한 작업 집합을 여러 흐름에서 사용할 수 있는 하위 흐름으로 만듭니다.
- 각 호출에 대해 서로 다른 입력 값을 구성합니다
- 하위 플로우의 입력 값은 호출할 때마다 다르게 구성됩니다. 예를 들어, 다른 기록 유형을 입력 실행으로 허용하도록 하위 플로우를 설계합니다. 각 기록 유형에 대해 특정 플로우를 작성하는 대신 이 일반 기록 하위 플로우를 재사용합니다.
- 대규모 플로우의 성능 및 가독성 향상
-
플로우가 25개 작업을 초과하면 하위 플로우를 사용합니다. 50은 sn_flow_designer.max_actions 시스템 속성에 의해 지정되는 최대 작업 수이지만 최상의 성능을 위해 플로우를 25개 작업으로 제한합니다.
- 하위 플로우를 20개 입력으로 제한
- 하위 흐름에 입력이 많을수록 하위 흐름을 열고 실행하는 데 더 많은 리소스가 필요합니다. 20개 이상의 입력을 처리하면 하위 플로우의 열기 및 실행 속도가 느려질 위험이 있습니다.
- 하위 플로우를 사용하여 입력 및 출력 전달
- 입력과 출력을 전달하려면 하위 플로우를 호출합니다. 하위 플로우가 시작될 때 사용할 수 있는 입력을 지정하거나 하위 플로우가 종료된 후 상위 플로우에서 사용할 수 있는 출력을 지정하려는 경우 하위 플로우를 사용합니다.
- 단일 이벤트에서 여러 플로우를 트리거할 때와 병렬 하위 플로우를 사용할 때 비교
-
- 상호 관련된 출력이 있거나 모든 출력을 사용할 수 있는데 일부 작업을 수행해야 하는 경우 병렬 하위 플로우를 사용합니다. 그렇지 않은 경우 여러 플로우를 트리거하는 것이 더 간단합니다.
- 병렬 하위 플로우를 구성하려면 대기 없이 각 하위 플로우를 시작한 다음 대기 조건을 사용하여 각 하위 플로우가 종료(완료, 오류, 취소됨)가 될 때까지 기다립니다.
- 유사한 기능을 가진 여러 하위 플로우가 있는 경우 동적 플로우를 사용합니다.
- 동적 플로우를 사용하면 템플릿을 적용하여 유사한 하위 플로우의 입력을 처리함으로써 프로세스를 구분할 수 있습니다. 구획화를 통해 통합 허브 스포크에 대한 하위 플로우와 같은 유사한 기능을 수행하는 하위 플로우를 구별할 수 있습니다.
- 오류 처리 프로세스에서 10개 항목 제한을 방지하십시오.
- 오류 처리 프로세스를 10개 항목 제한 내에 맞추도록 강제하는 대신, 더 많은 항목을 포함할 수 있는 하위 플로우를 호출하십시오. 하위 플로우 출력을 사용하여 다른 플로우에서 자동화를 트리거할 수도 있습니다.
- 수정 조치 수행
- 여러 플로우에서 동일한 작업 시퀀스를 다시 만드는 대신 재사용 가능한 하위 플로우를 만들어 기록 데이터의 오류를 수정합니다. 플로우 오류로 인해 기록 데이터가 원치 않는 상태가 되면 하위 플로우를 사용하여 이러한 기록을 수정합니다. 오류 핸들러를 사용하여 하위 플로우 출력과 같은 기록 데이터를 식별할 수 있습니다.