복합 데이터

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기9분
  • 그래픽 인터페이스를 사용하여 복잡한 구조화된 데이터 모음으로 작업합니다. 설계 사용자가 구조화된 데이터의 구성을 이해하고 개별 요소를 추가, 제거 또는 구성할 수 있도록 지원합니다.

    복잡한 데이터를 사용하면 JSON(JavaScript Object Notation) 또는 XML(eXtensible Markup Language)과 같이 기계가 읽을 수 있는 형식으로 구조화된 데이터를 인코딩하고 저장할 수 있습니다. 인터페이스를 사용하여 플로우 디자이너 구조화된 데이터의 구성을 보고 이해할 수 있을 뿐만 아니라 데이터 구조를 생성할 수 있습니다. 예를 들어 이름, 성, 이메일 주소와 같이 사용자 기록에서 조회하는 정보로 구성된 연락처 데이터 구조를 만들 수 있습니다.

    이러한 플로우 디자이너 인터페이스에서 복잡한 데이터를 만들 수 있습니다.

    표 1. 복잡한 데이터 사용 예제
    플로우 디자이너 인터페이스 사용 예
    작업 입력 및 출력 기록 데이터에서 개체를 생성하는 작업을 만듭니다. 작업이 조회하는 기록 데이터를 사용하여 객체를 채웁니다. 기록에서 객체를 생성하는 사용자 지정 작업 생성 문서를 참조하십시오.
    스크립트 단계 입력 및 출력 변수

    기록 목록에서 객체 배열을 만드는 스크립트를 작성합니다. 사용자 지정 동작을 만들어 기록 목록에서 객체 배열 생성를 참조하십시오.

    JSON 문서를 Object 유형의 출력으로 구문 분석하는 스크립트를 작성합니다.

    하위 플로우 입력 및 출력 개체를 입력으로 수락하고 이를 사용하여 외부 서비스를 호출하는 하위 플로우를 만듭니다.
    XML 파서 단계 대상 필드 구성 XML 파서 단계를 사용하여 XML 페이로드를 복합 데이터 객체로 구문 분석합니다.
    REST API 트리거 본문 필드 인바운드 REST API 요청을 복합 데이터 객체로 구문 분석하고 플로우에서 값을 사용합니다. REST API 트리거를 참조하세요.

    혜택

    복잡한 데이터는 이러한 이점을 제공합니다.
    • 코드를 작성할 필요 없이 데이터를 구문 분석하고 서식을 지정합니다. 예를 들어, 응답 메시지를 구문 분석하거나 요청 메시지의 형식을 지정하는 데이터 변수를 만듭니다.
    • 임의의 데이터 구조를 만듭니다. 예를 들어, 기존 상호작용 및 인시던트 기록의 정보를 결합하는 문제 데이터 구조를 생성하거나 사용자 지정 통합을 지원하는 데이터 구조를 생성합니다.
    • 데이터 구조의 구성을 봅니다. 예를 들어 문제 데이터 구조는 문제와 관련하여 연락할 사람을 설명하는 사용자 개체와 문제 해결을 위해 수행된 작업을 설명하는 기록 개체로 구성될 수 있습니다. 사용자 개체에 나열된 이메일 주소의 경로를 사용하여 알림 작업을 구성하고, 기록 개체에서 상태 경로 또는 재할당 횟수를 사용하여 에스컬레이션 문제 하위 플로우를 호출할 수 있습니다.
    • API 호출에서 데이터 구조에 대한 액세스를 허용합니다. 예를 들어, 스크립트에서 작업 또는 하위 플로우를 호출하고 미리 정의된 데이터 구조를 입력 값으로 사용합니다.
    • 데이터 구조를 템플릿으로 저장하고 재사용합니다. 예를 들어, 다른 작업 및 플로우에서 재사용할 수 있도록 사용자 객체를 템플릿 데이터 구조로 저장합니다.

    데이터 구조

    데이터 구조는 계층 구조로 구성된 관련 데이터 요소의 모음입니다. 데이터 구조의 각 요소에는 고유한 데이터 형식과 계층 구조에서 고유한 위치가 있습니다.

    편집기 창에는 들여쓰기가 있는 데이터 구조 계층 구조가 표시됩니다. 들여쓰기 수준은 요소가 계층 구조에서 부모, 자식 또는 형제인지 여부를 식별합니다. 부모 요소 아래에는 들여쓰기된 자식이 있고 형제는 동일한 들여쓰기 수준을 갖습니다.
    주:
    플로우 디자이너 이 인터페이스를 사용하면 자식 수준에 제한이 없는 계층을 만들 수 있지만 보려면 가로로 스크롤해야 할 수도 있습니다.

    예를 들어 이 데이터 구조는 ID 번호, 이름, 시작 날짜 및 연락처 이메일에 대한 4개의 자식 요소가 있는 Employee 부모 요소로 구성됩니다. Contact Email 요소는 하나의 자식이 있는 부모 요소이기도 합니다.

    그림 1. Employee 객체에 대한 샘플 입력
    Employee 객체에 대한 샘플 입력입니다. Employee 개체는 부모 항목입니다. ID 번호, 이름, 시작 날짜 및 연락처 이메일에 대한 하위 입력이 있습니다.

    데이터 패널은 기록 변수와 마찬가지로 데이터 구조 계층 구조를 축소 가능하고 확장 가능한 데이터 알약의 트리로 표시합니다. 상위 요소에는 계층 구조를 축소하거나 확장할 수 있는 화살표 아이콘이 있습니다.

    예를 들어, 다음은 데이터 패널에서 볼 수 있는 직원 데이터 구조입니다.

    그림 2. Employee 객체에 대한 샘플 데이터 정제
    Employee 개체에 대한 샘플 데이터 알약입니다. Employee 개체는 부모 항목입니다. ID 번호, 이름, 시작 날짜 및 연락처 이메일에 대한 하위 입력이 있습니다.

    데이터 패널 또는 데이터 선택기를 사용하여 데이터 구조에서 특정 값을 선택할 수 있습니다. 데이터 구조는 닷워킹하거나 구조 내의 특정 요소로 이동할 수 있다는 점에서 기록의 데이터 알약과 유사합니다. 데이터 요소를 선택하면 다른 플로우 디자이너 데이터 요소 선택과 마찬가지로 데이터 알약으로 경로를 표시합니다. 예를 들어 시작 날짜 데이터 요소를 선택하면 경로는 [Input->Employee->Start Date]입니다.

    XPath 또는 JPath와 동일한 방식으로 요소 데이터 경로를 사용할 수 있습니다. 경우에 따라 데이터 알약 경로를 이러한 경로 표기법 중 하나로 변환할 수도 있습니다.

    복합 데이터 형식

    하나 이상의 Array 또는 Object 변수를 사용하여 데이터 구조를 작성합니다. 이러한 변수 데이터 유형만 하위 변수를 지원합니다.

    Array 변수에는 한 가지 유형의 항목 값이 포함됩니다. 부모 변수는 항상 Array 데이터 형식이며, 배열에서 지원하는 데이터 형식의 한 인스턴스인 자식 변수는 항상 하나만 있습니다. 입력 또는 출력이 동일한 데이터형의 여러 값을 받는 경우 배열 변수를 만듭니다.

    예를 들어 연락처 이메일 배열을 만들어 지정된 사람과 연결된 모든 이메일 주소를 나열할 수 있습니다.

    표 2. 연락처 이메일 배열의 샘플 데이터 구조
    구성요소 레이블 데이터 유형 샘플 데이터
    연락처 이메일 배열.문자열 beth.anglin@example.com 및 beth@anglin.com
    연락처 Email_child0 문자열

    Object 변수에는 각각 고유한 데이터 형식과 값이 있는 자식 변수의 개수와 배열이 포함됩니다. 객체 변수를 중첩하면 한 테이블에 다른 테이블에 관련 레코드가 있는 테이블 스키마와 비슷한 복잡한 데이터 구조를 만들 수 있습니다. 입력 또는 출력이 하나 이상의 관련 속성을 허용하는 경우 객체 변수를 생성합니다.

    예를 들어 Employee 개체를 만들어 회사에서 일하는 사람에 대한 정보를 정의할 수 있습니다.

    표 3. Employee 객체의 샘플 데이터 구조
    구성요소 레이블 데이터 유형 샘플 데이터
    직원 객체
    ID 번호 정수 20190304000101
    이름 문자열 Beth Anglin
    시작 날짜 날짜/시간 2019년 3월 4일
    연락처 이메일 배열.문자열 beth.anglin@example.com 및 beth@anglin.com

    이러한 변수 데이터 유형만 부모가 될 수 있습니다.

    표 4. 상위 데이터 유형
    데이터 유형 설명
    배열.배열 배열의 컨테이너입니다. Array 형식의 읽기 전용 자식 항목을 추가합니다.
    Array.True/False 참/거짓 값을 담는 컨테이너입니다. True/False 형식의 읽기 전용 자식 항목을 추가합니다.
    배열.선택 선택 값의 컨테이너입니다. Choice 유형의 읽기 전용 하위 항목을 추가합니다.
    배열.날짜/시간 날짜/시간 값의 컨테이너입니다. 날짜/시간 유형의 읽기 전용 하위 항목을 추가합니다.
    배열.정수 정수 값의 컨테이너입니다. Integer 형식의 읽기 전용 자식 항목을 추가합니다.
    Array.Object 개체의 컨테이너입니다. 자식 항목 추가 옵션을 표시하는 Object 형식의 읽기 전용 자식 항목을 추가합니다.
    배열.문자열 문자열 값의 컨테이너입니다. String 형식의 읽기 전용 자식 항목을 추가합니다.
    객체 다른 데이터 요소에 대한 컨테이너입니다. 하위 항목 추가 옵션을 표시합니다.
    Array 및 Object 변수는 이러한 자식 데이터 유형만 지원합니다.
    • 배열
    • true/false
    • 선택
    • 날짜/시간
    • 정수
    • 객체
    • 문자열
    주:
    배열 및 객체 변수의 데이터 유형은 Glide 요소가 아닙니다. 이러한 항목과 Now 플랫폼 유형 간에는 완전한 호환성이 없을 수 있습니다.

    고급 옵션

    객체 변수에는 데이터 구조를 저장하고 불러오는 고급 옵션이 있습니다. 이러한 옵션을 사용하면 한 위치에서 정의된 데이터 구조를 다른 위치에서 다시 사용할 수 있습니다. 고급 옵션에 대한 자세한 내용은 작업 변수 데이터 유형을 참조하십시오.

    데이터 구조 템플릿

    데이터 구조 템플릿을 사용하면 여러 작업 또는 하위 플로우에서 객체 변수를 재사용할 수 있습니다. 예를 들어, 응답을 구문 분석하는 데이터 구조를 만든 다음 나중에 동일한 데이터 구조를 다시 사용하여 요청의 형식을 지정할 수 있습니다. 템플릿은 자식 변수의 목록과 그 구조를 개체 내에 저장합니다. 각 Object 변수에는 템플릿으로 저장할 수 있는 고급 옵션이 있습니다.

    템플릿을 적용하면 원래 구조의 복사본이 만들어집니다. 템플릿을 적용한 후 변경한 내용은 템플릿에 영향을 주지 않으며 템플릿을 사용하는 다른 작업에도 영향을 주지 않습니다.

    데이터 알약 배열

    배열 데이터를 포함하는 객체를 처리하려면 For Each 플로우 논리가 필요할 수 있습니다. 예를 들어, 이메일 주소 배열이 포함된 사용자 객체는 각 이메일 주소로 알림을 보내기 위해 For Each 플로우 로직 루프가 필요합니다.

    객체 데이터 알약

    객체 데이터 정제를 입력 값으로 허용하는 작업을 설계할 수 있습니다. 예를 들어, 사용자 객체를 입력으로 수락하는 알림 작업을 생성할 수 있습니다. 사용자 객체가 이름, 성 및 주소에 대한 값으로 구성된 경우 알림 작업은 이러한 모든 값에 액세스할 수 있습니다. 객체 데이터 알약으로 작업 입력을 구성하려면 플로우의 앞부분에서 객체를 만들어야 합니다.

    그림 3. 객체 데이터 정제를 수락하는 샘플 작업
    플로우의 샘플 작업입니다. 사용자, 이름, 성, 주소 및 주소 1에 대한 입력이 있습니다.

    객체 데이터 정제 또는 해당 하위 요소를 사용하여 입력을 구성할 수 있습니다. 객체 데이터 알약으로 입력 값을 구성하면 은 플로우 디자이너 객체의 모든 하위 요소를 읽기 전용으로 만들고 객체에서 제공하는 값을 사용합니다. 예를 들어, 한 작업은 사용자 객체를 생성하고 다른 작업은 객체에 지정된 사용자에게 알림을 보내는 플로우를 만들 수 있습니다.

    그림 4. 객체 데이터 정제를 사용하도록 구성된 샘플 작업
    플로우의 샘플 작업입니다. 사용자, 이름, 성, 주소 및 주소 1에 대한 입력이 있습니다. 사용자 입력에는 데이터 알약 [2->User Object]이 포함되어 있습니다.

    개체의 자식 요소를 구성할 때는 개체의 각 자식 요소에 대한 데이터 정제를 수동으로 제공해야 합니다. 예를 들어, 이전 작업의 기록 값을 사용하여 사용자 객체를 수동으로 구성할 수 있습니다.

    스크립트 지원

    스크립트에서 복잡한 데이터를 만들고 참조합니다. 소스 데이터가 데이터 스트림, REST 단계 응답 또는 기록 조회 단계에서 제공되는 경우 스크립트를 사용합니다. 복잡한 데이터를 사용한 스크립팅에 대한 자세한 내용은 을 참조하십시오 복잡한 데이터에 대한 스크립트 지원 .

    업데이트 세트 지원

    업데이트 세트에는 복합 객체가 정의된 플로우, 하위 플로우 또는 동작의 일부로 포함됩니다. 상위 플로우, 하위 플로우 또는 작업을 변경하면 연결된 복잡한 데이터가 자동으로 캡처됩니다.

    일반 지침

    다음 일반 지침에 따라 재사용 및 유지 관리 가능한 데이터 구조를 만듭니다.

    계층 구조에서 하위 수준 수 최소화
    데이터 구조의 하위 수준이 많을수록 계층 구조에서 데이터 변수를 보고 선택하기가 더 어려워집니다. 여러 자식 수준으로 데이터 구조를 작성할 수 있지만 7개 이상의 자식 수준으로 데이터 구조를 탐색하고 이해하기는 어려워집니다. 최상의 사용자 환경을 위해서는 자식 수준이 너무 많아서 가로로 스크롤하여 보고 채워야 하는 데이터 구조를 만들지 마십시오.
    각 기록 데이터 유형에 대해 별도의 객체 생성
    대부분의 플로우 디자이너 데이터는 인스턴스 또는 외부 시스템의 레코드 데이터입니다. 이 디자인 방법을 사용하면 개체에 포함된 항목과 데이터의 출처를 알 수 있습니다.
    기록 데이터 구조 다시 만들기
    레코드 데이터를 수신하거나 전송하는 개체를 빌드할 때 이러한 레코드에 대한 데이터베이스 사전 항목을 검토하고 일치하는 개체 데이터 구조를 작성하십시오. 예를 들어, 인시던트 및 구성 항목 테이블의 데이터를 포함하려는 객체를 원하는 경우를 가정해 보겠습니다. 인시던트 테이블의 간단한 설명 필드에 대한 문자열 요소와 구성 항목 테이블의 클래스 필드에 대한 문자열 배열 요소를 만들 수 있습니다.
    객체를 생성하여 다양한 유형의 기록 결합
    여러 유형의 레코드에서 정보가 필요한 경우 필요한 모든 정보가 포함된 개체를 생성합니다. 그런 다음 이 객체를 사용하여 에서 데이터의 서식을 지정하거나 구문 분석할 플로우 디자이너수 있습니다.