ThingWorx Flow > 사용자 정의 작업 만들기 및 관리 > ThingWorx Flow 8.5에서 사용자 정의 작업 만들기
ThingWorx Flow 8.5에서 사용자 정의 작업 만들기
사용자 정의 작업을 만들려면 다음 단계를 완료합니다.
1. ThingWorx Flow에 사용자 정의 작업을 추가하려면 다음 중 하나를 수행합니다.
ThingWorx Flow 설정 페이지에서 사용자 정의 작업으로 이동하고 을 클릭합니다.
워크플로 편집기의 작업 패널에서 사용자 정의 탭으로 이동하고 을 클릭합니다.
사용자 정의 작업 창이 열립니다.
다음 방법 중 하나를 사용하여 사용자 정의 작업에 코드 구조를 만듭니다.
미리 채워져 있는 기본 템플릿을 편집하여 사용자 고유의 코드 만들기
기존 작업 상속 또는 복사
자세한 내용은 상속과 복사 간의 차이를 참조하십시오.
2. 기존 작업을 상속하거나 복사하려면 다음을 수행합니다.
a. 기존 작업에서 작업 선택 목록에서 상속하거나 복사하려는 작업이 있는 커넥터를 검색합니다.
b. 을 클릭하여 커넥터 아래의 작업 목록을 확장합니다.
c. 상속하거나 복사하려는 작업을 선택합니다.
d. 다음에 기존 작업 사용 필드에서 상속 또는 복사를 선택합니다.
기존 작업을 상속하거나 복사하지 않으려면 미리 채워진 기본 템플릿을 편집하여 사용자 정의 작업에 대한 코드를 작성할 수 있습니다.
3. 아래에 작업 포함 필드에서 다음 중 하나를 선택합니다.
사용자 정의 작업 - 워크플로 편집기의 사용자 정의 탭에 있는 사용자 정의 작업 그룹 아래에 사용자 정의 작업을 추가합니다.
사용자 정의 그룹 - 사용자 정의 작업을 사용자 자신의 사용자 정의 그룹에 추가합니다. 이 옵션 옆의 필드에 사용자 정의 그룹의 이름을 입력합니다. 사용자 정의 그룹 이름은 워크플로 편집기의 서비스 탭에서 사용할 수 있습니다.
* 
사용자 정의 그룹 아래에 인증이 필요하지 않은 상속되거나 복사된 사용자 정의 작업을 추가할 수 있습니다.
동일한 사용자 정의 그룹에서 서로 다른 유형의 승인 또는 연결을 사용하여 여러 작업을 수행할 수 없습니다.
기존 커넥터 작업을 복사하거나 상속하면 기본적으로 동일한 커넥터에 사용자 정의 작업이 추가됩니다. 예를 들어, Azure 커넥터에서 이상 감지기 작업을 선택하면 기본적으로 아래에 작업 포함 필드에 대해 Azure가 선택됩니다.
* 
이 옵션은 기존 작업을 복사하거나 상속하는 경우에만 나타납니다.
4. 아이콘 선택 필드에서 찾아보기를 클릭하여 사용자 정의 작업에 대한 아이콘을 선택합니다. 128 x 128 JPEG 또는 PNG 이미지를 선택해야 합니다.
* 
아이콘을 제공하지 않으면 기본 사용자 정의 작업 아이콘이 사용됩니다.
기존 작업을 상속하거나 복사하면 기본적으로 작업 아이콘이 사용자 정의 작업 아이콘으로 사용됩니다.
5. 코드 편집기에서 미리 채워진 템플릿을 편집하여 작업에 대한 코드를 작성합니다. 작업의 다양한 부분을 정의하는 방법에 대한 자세한 내용은 사용자 정의 작업 정의를 참조하십시오.
6. 컴파일을 클릭합니다. 코드에 오류가 있으면 코드 편집기에서 강조 표시됩니다. 컴파일이 성공적으로 완료된 후 사용자 정의 작업의 입력 섹션에 정의된 모든 입력 필드가 오른쪽 창에 표시됩니다.
7. 저장을 클릭하여 사용자 정의 작업을 저장합니다.
사용자 정의 작업 정의
사용자 정의 작업은 작업을 정의하는 Node.js JavaScript 함수입니다. 사용자 정의 작업을 만들면 샘플 템플릿이 코드 편집기에서 미리 채워집니다. 이 템플릿을 사용자 정의 작업을 작성하는 시작점으로 사용합니다.
다음 표에서는 미리 채워져 있는 코드의 다양한 섹션에 대한 정보를 제공합니다.
범례
설명
1
require() 함수를 사용하면 사용자 정의 작업에 사용할 Node.js 모듈을 가져올 수 있습니다. 샘플 코드에서는 작업이 request 모듈을 가져와서 타사 시스템에 대한 단순 HTTP 호출을 만듭니다.
* 
사용자 정의 작업에서 사용할 수 있는 노드 모듈 목록은 여기서 사용할 수 있습니다.
사용자 정의 작업에서 이러한 노드 모듈을 사용하는 방법에 대한 자세한 내용은 사용자 정의 작업 사용자 정의를 참조하십시오.
2
this.localization.namespace:label - 사용자 정의 작업의 이름을 지정하는 속성입니다. this.localization 아래의 특정 로캘에서 label 변수 값은 해당 로캘에 대한 사용자 정의 작업의 이름을 정의합니다.
* 
로컬리제이션 지원이 필요하지 않으면 여기에 사용자 정의 작업 이름을 지정할 수 있습니다.
3
this.input - 워크플로에서 작업을 구성할 때 표시할 입력 필드를 정의하는 속성입니다. 이는 JSON 스키마이며 유효해야 합니다. 다음 매개 변수의 값을 지정합니다.
title(필수) - 내부적으로 식별자로 사용됩니다.
예제 코드에서 title 필드의 값은 this.localization.namespace:sample_input입니다. this.localization 아래의 특정 로캘에서 sample_input 변수 값은 해당 로캘에 대한 title의 값을 설정합니다.
type(필수) - 내부적으로 사용됩니다. 항상 이 값을 object로 설정합니다. 이 값을 변경하지 마십시오.
properties(필수) - 작업에 대한 여러 입력 필드 및 유효성 검사 조건을 정의합니다(있는 경우). 각 입력 필드에 대한 고유 키(예: first_name) 및 각 입력 필드에 대한 다음 값을 정의합니다.
title - 입력 필드의 이름입니다.
예제 코드에서 title 필드의 값은 this.localization.namespace:Custom_Action_First_Name입니다. this.localization 아래의 특정 로캘에서 Custom_Action_First_Name 변수 값은 해당 로캘에 대한 title의 값을 설정합니다.
type - 필드의 유형입니다. 예: 문자열, 정수, 숫자 등입니다.
description - 도구 설명으로 나타나는 메시지입니다.
예제 코드에서 description 필드의 값은 this.localization.namespace:Enter_Custom_Action_First_Name입니다. this.localization 아래의 특정 로캘에서 Enter_Custom_Action_First_Name 변수 값은 해당 로캘에 대한 description의 값을 설정합니다.
minLength - 입력 필드를 필수로 만드는 경우에만 이 필드 값을 1로 설정합니다. 입력 필드를 필수 필드로 만들지 않으려면 해당 입력 필드의 속성을 제거합니다.
4
this.output - 작업이 반환하는 출력 필드를 정의하고 워크플로의 다른 작업에 사용할 수 있도록 하는 속성입니다. 이는 JSON 스키마이며 유효해야 합니다. 다음 매개 변수의 값을 지정합니다.
title(필수) - 내부적으로 식별자로 사용됩니다.
예제 코드에서 title 필드의 값은 this.localization.namespace:output입니다. this.localization 아래의 특정 로캘에서 output 변수 값은 해당 로캘에 대한 title의 값을 설정합니다.
type(필수) - 내부적으로 사용됩니다. 항상 이 값을 object로 설정합니다. 이 값을 변경하지 마십시오.
properties(필수) - 작업에 대한 여러 출력 필드를 정의합니다. 각 출력 필드에 대한 고유 키(예: status) 및 각 출력 필드에 대한 다음 값을 정의합니다.
title - 출력 필드의 이름입니다.
예제 코드에서 title 필드의 값은 this.localization.namespace:status입니다. this.localization 아래의 특정 로캘에서 status 변수 값은 해당 로캘에 대한 title의 값을 설정합니다.
type - 필드의 유형입니다. 예: 문자열, 정수, 숫자 등입니다.
5
this.localization - 사용자 정의 작업에 대한 고유 토큰 및 영어 및 현지화된 입력 및 출력 필드를 정의하는 속성입니다. 다음 매개 변수의 값을 지정합니다.
namespace(필수) - 사용자 정의 작업에 대해 자동으로 생성된 토큰입니다. namespace 매개 변수의 값은 모든 사용자 정의 작업에서 고유해야 합니다.
* 
이 값을 수정하지 마십시오.
en(필수) - 필드 이름과 내부적으로 사용되는 식별자 이름입니다. 다음 이미지에는 필드 이름과 해당 영어 값이 표시됩니다().
de - 필드 이름과 언어에 대해 내부적으로 사용되는 식별자 이름입니다. 샘플 코드는 해당하는 독일어 값을 제공합니다. 여러 언어와 해당하는 값을 추가할 수 있습니다.
* 
ThingWorx Flow 8.4.x에서 ThingWorx Flow 8.5로 마이그레이션한 경우, ThingWorx Flow 8.4.x에서 생성된 사용자 정의 작업을 ThingWorx Flow 8.5에서도 계속 사용할 수 있습니다. 사용자 정의 작업의 입력 및 출력 필드에 대한 로컬리제이션 지원을 추가할 수 있습니다. 그러나 ThingWorx Flow 8.4.x에서 생성된 사용자 정의 작업의 레이블은 로컬리제이션할 수 없습니다.
6
this.execute - 작업이 워크플로 내에서 실행될 때 실행되는 프로그램 논리를 정의하는 속성입니다. 함수는 다음 두 함수 매개 변수를 정의해야 합니다.
input - 워크플로 실행 시간에 입력 매개 변수의 값을 포함하는 JSON 객체입니다. 작업의 this.input 속성에 정의된 대로 입력 필드 키를 사용하여 이러한 값을 참조합니다.
output - 출력 값을 워크플로에 전달하기 위해 호출해야 하는 콜백 함수입니다. 해당 작업이 완료되었음을 나타냅니다. 코드에서 this.output JSON 스키마와 일치하는 출력 JSON을 생성해야 하는지 확인하십시오. 함수의 형식은 callback(err,output)입니다.
err - 워크플로에서 발생했을 수 있는 모든 오류를 보고합니다. 오류가 발생하지 않으면 null을 지정합니다.
output - 작업의 this.output 속성에 정의된 각 키의 값을 포함하는 JSON 객체입니다.