사용자 지정 동작을 만들어 기록 목록에서 객체 배열을 작성합니다.
사용자 기록 목록에서 객체 배열을 작성합니다. 스크립트 단계를 사용하여 기록 목록을 반복하는 방법에 대해 알아봅니다.
시작하기 전에
이 태스크 정보
- 부서 기록에 대한 작업 입력을 생성합니다.
- 부서 작업 입력에 대해 최대 3개의 사용자 기록을 조회합니다.
- 사용자 기록 목록을 처리하도록 스크립트 단계를 구성합니다.
- 사용자 기록 목록이 포함된 스크립트 입력 변수를 만듭니다.
- 빈 연락처 배열을 만드는 스크립트를 작성합니다.
- 사용자 기록 목록을 반복하는 스크립트를 작성합니다.
- 연락처 개체를 만들고 사용자 기록 필드 값을 연락처 개체에 매핑하는 스크립트를 작성합니다.
- contacts 배열을 현재 contact 개체로 채우는 스크립트를 작성합니다.
- 접촉 창구 배열 및 하위 접촉 창구 객체에 대한 스크립트 출력 변수를 만듭니다.
- 연락처 개체를 템플릿으로 저장합니다.
- 생성된 객체의 contacts 배열을 데이터 알약으로 출력합니다.
- 샘플 부서에서 작업을 테스트합니다.
프로시저
- 옵션:
작업을 저장할 애플리케이션을 만듭니다.
애플리케이션을 계획, 생성 및 배포하는 데 사용할 앱 엔진 스튜디오 수 있습니다. 사용자 지정 응용 프로그램 빌드에 대한 자세한 내용은 을 참조하십시오 Building apps in App Engine Studio.예를 들어, 내 애플리케이션이라는 애플리케이션을 만듭니다.
- 다음으로 이동 모두 > 프로세스 자동화 > 워크플로우 스튜디오.
- 홈페이지에서 작업을 선택합니다.
-
선택 신규 > 작업
시스템에 작업 속성 대화 상자가 표시됩니다.
-
이 샘플 값을 입력합니다.
필드 값 이름 연락처 객체 배열 작성 애플리케이션 전역 다음에서 접근 가능 모든 애플리케이션 범위 주:사용자 지정 작업을 저장하고 배포할 애플리케이션을 생성한 경우 전역 대신 해당 애플리케이션을 사용합니다. -
빌드 작업을 선택합니다.
시스템에 인터페이스가 워크플로우 스튜디오 표시됩니다.
-
Action Outline(작업 개요)에서 입력 > 입력 작성
시스템에 새 작업 입력이 표시됩니다.
-
이 값을 사용하여 작업 입력을 구성합니다.
필드 값 레이블 부서 유형 참조.부서 [Reference.cmn_department] 필수 참 -
작업 개요에서 새 단계 추가를 선택합니다.
시스템에 사용 가능한 단계 목록이 표시됩니다.
- 기록 조회 선택
-
이 값을 사용하여 단계를 구성합니다.
필드 값 테이블 사용자 [sys_user] 조건 [부서] [이다] [action->부서] 주:입력 변수에서 부서 데이터 정제를 선택합니다.정렬 기준 이름 정렬 유형 a-z 최대 결과 3 주:이 예제에서는 데모를 위해 최대 결과 설정을 3개의 레코드로 제한합니다. -
작업 개요에서 새 단계 추가를 선택합니다.
시스템에 사용 가능한 단계 목록이 표시됩니다.
- 스크립트를 선택합니다.
- 입력 변수(Input Variables) 섹션에서 변수 생성(Create Variable)을 선택합니다.
-
이 값을 사용하여 입력 변수를 구성합니다.
필드 값 이름 사용자 기록 값 [step->기록 조회 step->사용자 기록] 주:기록 조회 단계에서 사용자 기록 데이터 정제를 선택합니다.주:데이터 패널 또는 데이터 알약 선택기 버튼에서 사용자 기록 데이터 정제를 선택할 수 있습니다. -
스크립트에 다음 텍스트를 입력합니다.
(function execute(inputs, outputs) { //Create an empty array var contactsArray = []; var i = 0; //Iterate through the list of User records while(inputs.userRecords.next()) { //Create an empty object for each iteration var contactObject = {}; //Query User records to assign object values contactObject.first_name = inputs.userRecords.getValue('first_name'); contactObject.last_name = inputs.userRecords.getValue('last_name'); contactObject.email_address = inputs.userRecords.getValue('email'); //Add current object to array contactsArray[i] = contactObject; i += 1; } outputs.contacts = contactsArray; })(inputs, outputs); - Output Variables(출력 변수)에서 Create Variable(변수 생성)을 선택합니다.
-
이 값을 사용하여 출력 변수를 구성합니다.
레이블 이름 유형 필수 연락처 연락처 Array.Object 참 - contacts Array.Object를 확장하고 자식 개체의 이름을 contact로 바꿉니다.
-
연락처 개체의 행에서 하위 항목 추가 아이콘
을 선택합니다.
-
이러한 값을 사용하여 하위 항목을 구성합니다.
레이블 이름 유형 필수 이름 first_name 문자열 참 -
연락처 개체의 행에서 하위 항목 추가 아이콘
을 선택합니다.
-
이러한 값을 사용하여 하위 항목을 구성합니다.
레이블 이름 유형 필수 성 last_name 문자열 참 -
연락처 개체의 행에서 하위 항목 추가 아이콘
을 선택합니다.
-
이러한 값을 사용하여 하위 항목을 구성합니다.
레이블 이름 유형 필수 이메일 주소 email_address 문자열 참 - 연락처 개체에 대한 행에서 Toggle Advanced Inputs(고급 입력 설정/해제)를 선택합니다.
-
Advanced Options(고급 옵션)에서 Save As Template(템플릿으로 저장)을 선택합니다.
템플릿으로 저장 대화상자가 표시됩니다.
-
이름 입력에 contact를 입력합니다.
- 저장을 클릭합니다.
- Action Outline(작업 개요)에서 출력 > 출력 작성.
-
이 값을 사용하여 작업 출력을 구성합니다.
레이블 이름 유형 필수 연락처 연락처 Array.Object 참 - contacts Array.Object를 확장합니다.
- 연락처 개체에 대한 행에서 Toggle Advanced Inputs(고급 입력 설정/해제)를 선택합니다.
-
Advanced Options(고급 옵션)에서 구조 > 템플릿에서 시작.
시스템에 템플릿이 표시됩니다.
-
템플릿의 경우 이전에 저장한 템플릿을 선택합니다.
예를 들어 전역: 연락처를 선택합니다.
-
편집 모드 종료를 선택합니다.
시스템은 사용자가 생성한 출력 필드를 표시합니다.
-
연락처의 경우 [step->스크립트 단계->연락처]를 선택합니다.
주:스크립트 단계 연락처 데이터 알약은 데이터 패널 또는 데이터 알약 선택기 버튼에서 선택할 수 있습니다.
- 저장을 클릭합니다.
-
테스트를 선택합니다.
테스트 작업 대화상자가 표시됩니다.
-
다음 테스트 값을 입력합니다.
입력 값 부서 개발 -
테스트 실행을 선택합니다.
시스템은 제공된 테스트 값으로 작업을 실행합니다.
-
테스트 실행이 완료됨을 선택합니다 . 작업 실행 상세 정보를 봅니다.
시스템에 작업 실행 세부 정보가 표시됩니다.
-
작업 출력 데이터에 대한 런타임 값을 검토합니다.
실행 세부 정보는 출력 데이터를 JSON 형식의 문자열로 표시하지만 실제 출력 데이터 형식은 객체 배열입니다. 출력의 문자열 버전이 필요한 경우 JSON 클래스를 사용하여 객체를 문자열로 변환할 수 있습니다. JSON 객체를 문자열로 변환하는 방법에 대한 자세한 내용은 을 참조하십시오 Scoped JSON - stringify(Object jsonObject).이 예제의 경우 contacts 개체에는 개발 부서의 사용자 세 명에 대한 이름, 성 및 전자 메일 정보가 포함된 연락처 개체 배열이 포함되어 있습니다.{ "contacts": "contact": [ { "email_address": "allyson.gillispie@example.com", "first_name": "Allyson", "last_name": "Gillispie" }, { "email_address": "alva.pennigton@example.com", "first_name": "Alva", "last_name": "Pennigton" }, { "email_address": "andrew.och@example.com", "first_name": "Andrew", "last_name": "Och" } ] } }