본문으로 건너뛰기
  1. Posts/

Thingworx Extension 개발을 위한 이클립스 개발 환경 세팅

·2 분· loading · loading ·
작성자
SeungHyeon Lee
R&D Center Developer

Thingworx에 사용자가 개발한 Extension을 추가하여 위젯, Thing과 서비스 등 엔티티를 추가하여 사용할 수 있습니다.

Thingworx Extension 개발을 위해서는 Eclipse에 플러그인 설치가 필요합니다.

Eclipse 플러그인 설치와 개발을 위한 기본 설정을 알아보겠습니다.

Thingworx Extension 개발을 위한 Eclipse 플러그인 설치
#

  1. [support.ptc.com](PTC Software Download - ThingWorx Foundation) 에서 사용하는 버전을 선택하여 Eclipse Plugin for Thingworx Extensions zip 파일을 다운로드 받아 압축을 해제합니다.

image-20230920114846180

  1. Eclipse를 실행합니다.

  2. Help > Install New Software... 을 선택하여 설치 창을 띄웁니다.

image-20230920115616439

  1. Add를 눌러 Add Repository화면에서 Locale을 클릭하여 thingworx-eclipse-plugin-[version].zip파일을 선택합니다. (Group items by category옵션을 체크해제)

  2. Thingworx Extension Builder을 선택하고 설치합니다.

  3. Eclipse를 재시작 합니다.

  4. Help > Installation Details에서 ThingWorx Extension Builder가 추가되어 있는지 확인합니다.

Extension 프로젝트 생성
#

  1. [support.ptc.com](PTC Software Download - ThingWorx Foundation) 에서 사용하는 버전을 선택하여 Thingworx Extensions SDK zip 파일을 다운로드 받습니다.

  2. File > New > Project...를 선택하여 프로젝트 설치 창을 띄웁니다.

  3. Thingworx를 검색하여 Thingworx폴더를 확장하고 ThingWorx Extension Project를 선택한 후 Next를 누릅니다.

image-20230920120301345

  1. 프로젝트 이름을 입력하고 Browse...를 눌러 다운받은 SDK를 선택합니다. 빌드 프레임워크는 Ant로 지정하겠습니다.

image-20230920120948900

  1. Vendor 이름, 패키지 버전 등을 수정할 수 있습니다. Finish를 눌러 프로젝트를 생성합니다.

엔티티 생성
#

  1. 엔티티 생성을 위해서는 ThingWorx메뉴를 선택해 생성하고자 하는 엔티티 타입을 선택합니다.

image-20230920121358694

  1. 생성하고자 하는 위치를 선택하고, 엔티티 이름을 입력합니다. Finish를 눌러 엔티티 생성을 완료합니다.

위젯 생성
#

  1. ThingWorx메뉴를 선택해 New Widget을 선택합니다.

  2. 위젯 생성 창에서 새로운 위젯을 추가할 프로젝트를 선택합니다.

image-20230920121628509

  1. 위젯 이름을 입력하고 Finish를 선택해 생성을 완료합니다.

  2. /ui 폴더 내부에 새로운 위젯 폴더가 생성되며, 위젯의 CSS, JS 파일이 함께 생성됩니다.

Extension 빌드
#

Extension 빌드는 Gradle, Ant 두가지 방식중 하나를 선택할 수 있습니다.

프로젝트 생성 시 Extension 빌드 방식을 지정할 수 있습니다.

Gradle Build
#
  • build.gradle를 우클릭 하고 Run As > Gradle Build를 선택하여 빌드합니다.
And Build
#
  • build-extension.xml 을 우클릭 하고 Run As > Ant Build를 선택하여 빌드합니다.
빌드 결과
#
  • build > distributions 내부에 빌드된 Extension 파일이 생성됩니다.
  • 생성된 Extension 파일은 ThingWorx에 import가 가능합니다.

관련 글

Thingworx 테스트 Tip (3) - 브라우저 개발자 도구 네트워크 기능을 이용한 Session 이벤트 제어와 서비스 이벤트 제어
·2 분· loading · loading
Thingworx Mashup 개발 시 화면간 이동으로 triggering되는 Load 이벤트와 Session에 설정한 사용자 지정 속성의 이벤트, 서비스의 동작에 따른 이벤트의 연쇄작용으로 테스트가 어려운 경우가 있습니다. 이번 글에서는 브라우저 개발자 도구 네트워크 기능을 이용한 Session 이벤트 제어와 서비스 이벤트 제어를 알아보도록 하겠습니다. Thingworx Session 객체를 통한 Session 이벤트 제어 # Session 값 조작에는 Thingworx 런타임객체 내의 Session 객체를 통해 Session 값 제어가 가능했지만,
Thingworx 테스트 Tip (2) - 브라우저 개발자 도구 콘솔을 통한 Thingworx Session 객체 접근 및 조작
·2 분· loading · loading
Thingworx Mashup 개발 시 로직의 순서 제어를 위해 Thingworx의 Session에 설정한 사용자 지정 속성의 이벤트를 이용하는 작업이 필요한 경우가 있습니다. 하지만 필요한 이벤트를 trigger 하기 위해 선행되어야 하는 동작들이 있을 수 있으며, 그 동작들을 테스트를 통해 인위적으로 발생시키기 위해서는 많은 양의 테스트 서비스 작성 및 서비스/이벤트 바인딩이 수행되었다가 테스트 후에 원복 시켜야 하는 불편함이 발생하기도 합니다. 브라우저의 개발자 도구의 콘솔을 이용하여 Thingworx의 Session 객체에 접근하고, 객체의 내장 함수를 통해 Thingworx Session 의 특정 사용자 지정값을 get/set 하거나, 세션 값이 변경 될 경우에 발생하는 이벤트를 trigger 할 수 있습니다. 이는 별도의 테스트용 서비스 작성 및 서비스/이벤트 바인딩 작업을 줄여 작업 시간 단축을 기대할 수 있을 것입니다.
Thingworx 테스트 Tip (1) - 브라우저 개발자 도구 네트워크 기능을 이용한 로직 디버깅
·2 분· loading · loading
Thingworx Mashup 개발에는 Mashup에 연결된 Thing의 서비스, 세션 변수, UI 간의 이벤트 바인딩으로 로직을 구성하고 서비스 input/output 바인딩의 작업을 필요로 합니다. 간단한 로직의 경우 몇번의 테스트 만으로도 서비스가 의도된 대로 동작하는지 확인할 수 있지만, 로직의 복잡도가 증가할 수록, 서비스의 개수가 많아질 수록, 바인딩된 이벤트가 많아질 수록 테스트의 난이도가 쉽게 증가합니다. 브라우저의 개발자 도구 기능을 이용하면 서비스에 하나하나 로그를 출력하는 것 대신 쉽게 문제 발생지점을 찾아낼 수 있으며, Thingworx 객체에 직접 접근하여 이벤트 제어를 통해 원하는 지점부터 로직을 테스트 할 수 있습니다.