ThingWorx Flow > 사용자 정의 작업 만들기 및 관리 > ThingWorx Flow 8.4.x에서 사용자 정의 작업 만들기
ThingWorx Flow 8.4.x에서 사용자 정의 작업 만들기
ThingWorx Flow 설정 페이지 또는 작업 패널에 있는 사용자 정의 탭의 워크플로에서 사용자 정의 작업을 만듭니다.
사용자 정의 작업을 만들려면 다음 단계를 완료합니다.
1. ThingWorx Flow에 사용자 정의 작업을 추가하려면 다음 중 하나를 수행합니다.
ThingWorx Flow 설정 페이지에서 사용자 정의 작업으로 이동하고 을 클릭합니다.
워크플로 편집기의 작업 패널에서 사용자 정의 탭으로 이동하고 을 클릭합니다.
사용자 정의 작업 창이 열립니다.
2. 레이블 필드에 작업에 적합한 이름을 입력합니다. 이는 필수 사항입니다.
3. 코드 편집기에서 미리 채워진 템플릿을 편집하여 작업에 대한 코드를 작성합니다. 작업의 다양한 부분을 정의하는 방법에 대한 자세한 내용은 사용자 정의 작업 정의를 참조하십시오.
4. 컴파일을 클릭합니다. 코드에 오류가 있으면 코드 편집기에서 강조 표시됩니다. 컴파일이 성공적으로 완료된 후 사용자 정의 작업의 입력 섹션에 정의된 모든 입력 필드가 왼쪽 창에 표시됩니다.
5. 저장을 클릭합니다. 작업은 작업 패널의 사용자 정의 탭에 있는 사용 가능한 작업 목록에 추가되고 워크플로 캔버스에 끌어 놓아 사용할 수 있습니다.
사용자 정의 작업 정의
사용자 정의 작업은 작업을 정의하는 Node.js JavaScript 함수입니다. 사용자 정의 작업을 만들면 샘플 템플릿이 코드 편집기에서 미리 채워집니다. 이 템플릿을 사용자 정의 작업을 작성하는 시작점으로 사용합니다.
번호
설명
1
코드 시작 부분에 require() 함수를 사용하여 사용자 정의 작업에 사용할 Node.js 모듈을 가져옵니다. 샘플 코드에서는 작업이 request 모듈을 가져와서 타사 시스템에 대한 단순 HTTP 호출을 만듭니다.
* 
오용을 방지하기 위해 다음 Node.js 모듈만 가져와 사용자 정의 작업에 사용할 수 있습니다.
assert, buffer, crypto, events, http, https, lodash, path, punycode, querystring, request, soap, string_decoder, url, ws, xml2js, zlib
2
this.id - 사용자 정의 작업의 고유한 식별자로 사용되는 속성입니다.
3
this.label - 사용자 정의 작업의 이름을 지정하는 속성입니다.
* 
this.label을 사용하여 작업의 제목을 설정하면 사용자 정의 작업 창에서 입력한 작업 레이블이 자동으로 재정의됩니다.
4
this.input - 워크플로에서 작업을 구성할 때 표시할 입력 필드를 정의하는 JSON 속성입니다. 값을 지정해야 할 세 가지 JSON 키가 있습니다.
title - (필수 사항) 내부적으로 식별자로 사용됩니다.
type - (필수 사항) 내부적으로 사용됩니다. 이 키의 값은 항상 object로 설정해야 하고 변경해서는 안 됩니다.
properties - (필수 사항) 작업에 대해 표시될 입력 필드 및 유효성 검사 조건(있는 경우)을 정의하는 JSON 속성입니다. 각 입력 필드는 고유한 키(예: first_name)가 있어야 하며 다음 항목의 값을 정의합니다.
title - (필수 사항) 이름 등 필드에 대해 표시되는 레이블입니다.
type - (필수 사항) 필드의 유형입니다. 올바른 유형은 string, object, array 및 any입니다.
description - (선택 사항) 도구 설명으로 표시되는 메시지입니다.
minLength - (선택 사항) 지정되어야 하는 최소 문자 수를 지정합니다.
* 
필드를 필수 필드로 설정하려면 minLength의 값을 1로 설정합니다.
5
this.output - 작업이 반환되고 워크플로의 나머지 부분에서 사용할 수 있는 출력 필드를 정의하는 JSON 속성입니다. 값을 지정해야 할 세 가지 JSON 키가 있습니다.
title - (필수 사항) 내부적으로 식별자로 사용됩니다.
type - (필수 사항) 내부적으로 사용됩니다. 이 키의 값은 항상 object로 설정해야 하고 변경해서는 안 됩니다.
properties - (필수 사항) 출력 필드를 정의하는 JSON 속성입니다. 각 출력 필드는 고유한 키(예: 상태)가 있어야 하며 다음 항목의 값을 정의합니다.
title - (필수 사항) 상태 등 필드에 대해 표시되는 레이블입니다.
type - (필수 사항) 필드의 유형입니다. 올바른 유형은 string, object, array 및 any입니다.
6
this.execute - 작업이 워크플로 내에서 실행될 때 실행되는 프로그램 논리를 정의하는 함수입니다. 함수는 다음 두 함수 매개 변수를 정의해야 합니다.
input - 워크플로 실행 시간에 입력 매개 변수의 값을 포함하는 JSON 객체입니다. 값은 작업의 this.input 속성에 정의된 입력 필드 키를 사용하여 참조될 수 있습니다.
output - 출력 값을 워크플로에 전달하기 위해 호출해야 하는 콜백 함수입니다. 해당 작업이 완료되었음을 나타냅니다. 함수의 형식은 callback(err,output)입니다.
err - 워크플로에 발생할 수 있는 모든 오류를 보고하는 데 사용됩니다. 오류가 발생하지 않으면 null을 사용합니다.
output - 작업의 this.output 속성에 정의된 각 키의 값을 포함하는 JSON 객체입니다.
* 
ThingWorx Flow 8.4.x에서 ThingWorx Flow 8.5로 마이그레이션한 경우, ThingWorx Flow 8.4.x에서 생성된 사용자 정의 작업을 ThingWorx Flow 8.5에서도 계속 사용할 수 있습니다. 사용자 정의 작업의 입력 및 출력 필드에 대한 로컬리제이션 지원을 추가할 수 있습니다. 그러나 ThingWorx Flow 8.4.x에서 생성된 사용자 정의 작업의 레이블은 로컬리제이션할 수 없습니다.