복잡한 데이터에 대한 스크립트 지원
스크립트에서 복잡한 데이터를 만들고 참조합니다. 소스 데이터를 데이터 스트림, REST 단계 응답 또는 기록 조회 단계에서 가져온 경우 스크립트를 사용합니다.
이러한 소스에서 데이터를 가져오는 경우 스크립트를 사용하여 복잡한 데이터를 작성합니다.
| 데이터 소스 | 에서 복잡한 데이터 생성/매핑 |
|---|---|
| 데이터 스트림 작업 응답 스트림 | 스크립트 파서 단계 |
| REST 단계 응답 | 스크립트 단계 |
| 기록 조회 단계 |
데이터 스트림 작업 응답 스트림
데이터 스트림 작업은 파서 스크립트를 사용하여 스트림 항목 값을 복합 객체 값에 매핑합니다. 파서 스크립트를 작성할 때는 데이터 스트림 형식에 적합한 JavaScript 메서드를 사용합니다. 예를 들어 JSON - Scoped 클래스를 사용하여 JSON 데이터 스트림을 구문 분석하거나 인코딩합니다.
파서 스크립트는 데이터 스트림 입력 및 출력 객체뿐만 아니라 targetObject 속성에도 액세스할 수 있습니다. 복잡한 데이터를 작성하기 위해 응답 스트림을 구문 분석하는 방법에 대한 자세한 정보는 데이터 스트림 조치를 참조하십시오.
REST 단계 응답
스크립트 단계로 구문 분석하여 REST 단계 응답을 하나 이상의 복잡한 객체로 변환할 수 있습니다. 스크립트 단계에서 응답에 액세스하려면 입력 스크립트 변수를 생성하고 이전 REST 단계의 응답 페이로드에 매핑해야 합니다. 스크립트 입력 변수 생성에 대한 자세한 내용은 을 참조하십시오 스크립트 단계 .
REST 응답 값을 복합 객체 값에 매핑하는 스크립트를 작성합니다. REST 응답 스크립트를 작성할 때는 JSON parse() 메서드와 같이 응답 형식에 적합한 JavaScript 메서드를 사용합니다.
복잡한 데이터에서 REST 요청을 생성하기 위해 스크립트 단계를 사용할 필요가 없습니다. 이전 작업 또는 단계에서 복잡한 데이터를 생성한 다음 REST 단계의 문자열 입력에 매핑할 수 있습니다. 런타임 시 작업 또는 플로우는 복잡한 데이터를 JSON 표현으로 변환합니다.
예를 들어 데이터 수집 동작에 사용되는 동적 입력으로 시작하기 스크립트 단계를 참조하십시오. 테이블 및 필드 이름을 가져오기 위한 데이터 수집 작업은 모두 스크립트 단계를 사용하여 REST 응답을 JSON 객체로 구문 분석합니다. 두 데이터 수집 작업 모두 복잡한 데이터를 JSON 객체로 저장하는 출력 변수도 생성합니다.
기록 조회 단계
플로우는 각 플로우 에 관하여 로직을 사용하여 기록 목록을 처리할 수 있지만 작업에는 스크립트 단계가 필요합니다. 스크립트 단계는 For each 플로우 로직을 For 또는 While 루프와 같은 JavaScript로 바꿉니다.
스크립트 단계에서 기록 데이터에 액세스하려면 입력 스크립트 변수를 만들어 이전 조회 단계의 기록 데이터에 매핑해야 합니다. 스크립트 입력 변수 생성에 대한 자세한 내용은 을 참조하십시오 스크립트 단계 .
사용자 레코드 목록을 연락처 개체의 배열로 변환하는 예제 작업을 참조하십시오 사용자 지정 동작을 만들어 기록 목록에서 객체 배열을 작성합니다. .
닷워킹 객체 구조
구조체의 경로를 닷워킹하여 개체의 구조에서 요소를 참조할 수 있습니다. 모든 복합 데이터 경로는 데이터 소스의 이름(입력에 대한 전역 객체, 출력에 대한 전역 객체 또는 스크립트에서 생성한 배열 또는 객체의 이름)으로 시작합니다.
경로의 다음 섹션은 참조되는 각 구조 요소의 이름이며 마침표 문자(점이라고도 함)로 구분됩니다. 구조 요소의 이름을 나열하는 것은 테이블 구조를 특정 참조 필드에 나열하는 참조 필드를 닷워킹하는 것과 동일합니다.
예를 들어, contact 객체를 Output 변수로 정의한다고 가정하겠습니다. 개체는 다음과 같은 구조를 갖습니다.
| 구조에 배치 | 레이블 | 이름 | 유형 |
|---|---|---|---|
| 상위 | 연락처 | 연락처 | 객체 |
| 하위 | 이름 | first_name | 문자열 |
| 하위 | 성 | last_name | 문자열 |
| 하위 | 이메일 주소 | email_addresses | Array.Object |
| 손자 | 이메일 주소 | email_address | 객체 |
| 증손자 | 유형 | 유형 | 선택 |
| 증손자 | 이메일 | 이메일 | 문자열 |
| 하위 | 전화 | telephone_number | Array.Object |
| 하위 | 우편물 발송 주소 | mailing_address | Array.Object |
JavaScript 인덱스 값으로 배열의 개별 요소를 지정해야 하므로 이름 구조 요소에 대한 닷워킹 경로는 outputs.contact.first_name되고 Email 구조 요소에 대한 경로는 outputs.contact.email_addresses[0].email입니다.
일반 가이드라인
복잡한 데이터로 스크립팅할 때는 다음과 같은 일반적인 지침을 염두에 두어야 합니다.
- 문자열 입력을 사용하여 복잡한 데이터를 JSON 문자열로 변환
- 복잡한 데이터를 문자열 입력에 매핑하면 에서 워크플로우 스튜디오 JSON 문자열로 자동 변환합니다. 스크립트를 작성하는 대신 REST 단계에 문자열 입력을 추가하고 이전 작업 또는 단계의 복잡한 데이터에 매핑할 수 있습니다.
- 객체를 템플릿으로 저장
- 객체를 템플릿으로 저장하여 다른 작업, 플로우 및 스크립트 단계에서 다시 사용할 수 있습니다.
- 이전 데이터에 액세스하기 위한 스크립트 입력 변수 생성
- 작업 입력 또는 이전 단계에서 액세스하려는 데이터에 대한 스크립트 입력 변수를 생성합니다. 스크립트 입력 변수를 입력 또는 단계 데이터 정제에 매핑합니다. 예를 들어, 스크립트 입력 변수를 이전 단계에서 조회한 사용자 기록 목록에 매핑합니다.
- 복잡한 데이터를 저장할 스크립트 출력 변수를 만듭니다
- 스크립트에서 만드는 복잡한 데이터를 저장하는 스크립트 출력 변수를 만듭니다. 스크립트 출력 변수는 스크립트에 정의된 값과 일치해야 합니다. 예를 들어, 여러 contact 객체를 저장할 객체로 구성된 contacts 배열을 만들어 보겠습니다. 연락처 개체를 다시 사용할 수 있도록 템플릿으로 저장합니다.
- 작업 출력을 스크립트 출력 변수에 매핑합니다.
- 사용자 지정 작업으로 복잡한 데이터를 출력하려면 작업 출력을 추가하고 이를 스크립트 단계 출력 변수의 데이터 알약에 매핑합니다. 예를 들어, contacts 배열을 만들고 이전에 저장한 contact 개체 템플릿을 불러옵니다. 작업 출력을 스크립트 단계에서 생성된 contacts 배열에 매핑합니다.