기록 목록에서 객체 배열을 생성하는 사용자 지정 작업 생성
사용자 기록 목록에서 객체 배열을 생성합니다. 스크립트 단계를 사용하여 기록 목록을 반복하는 방법에 대해 알아봅니다.
시작하기 전에
이 태스크 정보
- 부서 기록에 대한 작업 입력을 생성합니다.
- 부서 작업 입력에 대해 최대 3개의 사용자 기록을 조회합니다.
- 사용자 기록 목록을 처리하도록 스크립트 단계를 구성합니다.
- 사용자 기록 목록이 포함된 스크립트 입력 변수를 생성합니다.
- 빈 연락처 배열을 작성하는 스크립트를 작성합니다.
- 사용자 기록 목록을 반복하는 스크립트를 작성합니다.
- 연락처 객체를 생성하고 사용자 기록 필드 값을 연락처 객체에 매핑하는 스크립트를 작성합니다.
- 연락처 배열을 현재 연락처 객체로 채우는 스크립트를 작성합니다.
- 연락처 배열 및 하위 연락처 객체에 대한 스크립트 출력 변수를 만듭니다.
- 연락처 개체를 템플릿으로 저장합니다.
- 객체의 생성된 연락처 배열을 데이터 필로 출력합니다.
- 샘플 부서를 사용해 작업을 테스트합니다.
프로시저
- 옵션:
작업을 저장할 애플리케이션을 만듭니다.
를 사용하여 앱 엔진 스튜디오 애플리케이션을 계획, 생성 및 배포할 수 있습니다. 사용자 지정 애플리케이션 빌드에 대한 자세한 내용은 다음 문서를 참조하십시오 Building apps in App Engine Studio.예를 들어, 내 애플리케이션이라는 애플리케이션을 생성합니다.
- 다음으로 이동 모두 > 프로세스 자동화 > 워크플로우 스튜디오.
- 홈페이지에서 작업을 선택합니다.
-
선택 신규 > 동작
시스템에 작업 속성 대화 상자가 표시됩니다.
-
다음 샘플 값을 입력합니다.
필드 값 이름 개체의 연락처 배열 작성 애플리케이션 전역 다음에서 접근 가능 모든 애플리케이션 범위 주:사용자 지정 작업을 저장하고 배포하는 애플리케이션을 만든 경우 전역 대신 해당 애플리케이션을 사용합니다. -
빌드 작업을 선택합니다.
시스템에 인터페이스가 표시됩니다 워크플로우 스튜디오 .
-
작업 개요에서 입력 > 입력 작성
시스템에 새 작업 입력이 표시됩니다.
-
다음 값을 사용하여 작업 입력을 구성합니다.
필드 값 레이블 부서 유형 참조.부서 [Reference.cmn_department] 필수 참 -
작업 개요에서 새 단계 추가를 선택합니다.
시스템에 사용 가능한 단계 목록이 표시됩니다.
- 기록 조회 선택
-
이러한 값을 사용하여 단계를 구성합니다.
필드 값 테이블 사용자 [sys_user] 조건 [부서][는][action->부서] 주:입력 변수에서 부서 데이터 정제를 선택합니다.정렬 기준 이름 정렬 유형 a-z 최대 결과 3 주:이 예시에서는 데모용으로 최대 결과 설정을 3개의 기록으로 제한합니다. -
작업 개요에서 새 단계 추가를 선택합니다.
시스템에 사용 가능한 단계 목록이 표시됩니다.
- 스크립트를 선택합니다.
- 입력 변수(Input Variables) 섹션에서 변수 생성(Create Variable) 을 선택합니다.
-
다음 값으로 입력 변수를 구성합니다.
필드 값 이름 userRecords 값 [단계->기록 조회 단계->사용자 기록] 주:기록 조회 단계에서 사용자 기록 데이터 정제를 선택합니다.주:데이터 패널 또는 데이터 정제 선택기 버튼에서 사용자 기록 데이터 정제를 선택할 수 있습니다. -
[Script]에 다음 텍스트를 입력합니다.
(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); - 출력 변수에서 변수 생성을 선택합니다.
-
다음 값으로 출력 변수를 구성합니다.
레이블 이름 유형 필수 연락처 연락처 Array.Object 예 - contacts Array.Object를 확장하고 자식 개체의 이름을 contact로 바꿉니다.
-
연락처 객체의 행에서 하위 항목 추가 아이콘
을 선택합니다.
-
이러한 값으로 하위 항목을 구성합니다.
레이블 이름 유형 필수 이름 first_name 문자열 예 -
연락처 객체의 행에서 하위 항목 추가 아이콘
을 선택합니다.
-
이러한 값으로 하위 항목을 구성합니다.
레이블 이름 유형 필수 성 last_name 문자열 예 -
연락처 객체의 행에서 하위 항목 추가 아이콘
을 선택합니다.
-
이러한 값으로 하위 항목을 구성합니다.
레이블 이름 유형 필수 이메일 주소 email_address 문자열 참 - 연락처 개체의 행에서 고급 입력 전환(Toggle Advanced Inputs)을 선택합니다.
-
Advanced Options(고급 옵션)에서 Save As Template(템플릿으로 저장)을 선택합니다.
템플릿으로 저장(Save As Template) 대화상자가 표시됩니다.
-
[Enter a Name]에contact를 입력합니다.
- 저장을 클릭합니다.
- 작업 개요에서 출력 > 출력 작성.
-
이 값을 사용하여 작업 출력을 구성합니다.
레이블 이름 유형 필수 연락처 연락처 Array.Object 예 - 연락처 Array.Object를 확장합니다.
- 연락처 개체의 행에서 고급 입력 전환(Toggle Advanced Inputs)을 선택합니다.
-
Advanced Options(고급 옵션)에서 구조 > 템플릿에서 시작.
시스템에 템플릿이 표시됩니다.
-
템플릿의 경우 이전에 저장한 템플릿을 선택합니다.
예를 들어 전역: 연락처를 선택합니다.
-
편집 모드 종료를 선택합니다.
생성한 출력 필드가 시스템에 표시됩니다.
-
접촉 창구의 경우 [단계->스크립트 단계->contacts]를 선택합니다.
주:데이터 패널 또는 데이터 정제 선택기 버튼에서 스크립트 단계 연락처 데이터 정제를 선택할 수 있습니다.
- 저장을 클릭합니다.
-
테스트를 선택합니다.
테스트 작업 대화 상자가 표시됩니다.
-
다음 테스트 값을 입력합니다.
입력 값 부서 개발 -
테스트 실행을 선택합니다.
시스템은 제공된 테스트 값으로 작업을 실행합니다.
-
테스트 실행이 완료되었습니다를 선택합니다 . 작업 실행 상세 정보를 봅니다.
시스템에 작업 실행 상세 정보가 표시됩니다.
-
작업 출력 데이터의 런타임 값을 검토합니다.
실행 세부 정보에는 출력 데이터가 JSON 형식의 문자열로 표시되지만 실제 출력 데이터 형식은 개체 배열입니다. 출력의 문자열 버전이 필요한 경우 JSON 클래스를 사용하여 객체를 문자열로 변환할 수 있습니다. JSON 객체를 문자열로 변환하는 방법에 대한 자세한 내용은 단원을 참조하십시오 Scoped JSON - stringify(Object jsonObject).이 예제의 경우 contacts 개체에는 개발 부서의 사용자 3명에 대한 이름, 성 및 전자 메일 정보가 포함된 연락처 개체의 배열이 포함되어 있습니다.{ "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" } ] } }