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

Thingworx Extension Third-Party JavaScript Libraries Tip

·1 분· loading · loading ·
Yna
Solution Techtopic Thingworx Extension Eclipse
InnoFactory
작성자
InnoFactory
스마트팩토리, 산업자동화, Digital Transformation, 디지털팩토리, PLM, ALM, Digital Manufacturing, Visualization, 3D CAD, Digital Twin, Big Data, IIoT 솔루션 전문업체
작성자
Yeongkyun Na
Developer of Innofactory.

Thingworx Extension
#

Thingworx Extension으로 Third-Party Javascript Libraries를 사용하는 방법은 Thingworx Document에 다음과 같이 소개되어 있습니다.

if (!jQuery().qtip) {
$("body").append('<script type="text/javascript"
src="../Common/extensions/MyExtension/ui/mywidget/
include/qtip/jquery.qtip.js"></script>');
$("head").append('<link type="text/css"
rel="stylesheet" href="
../Common/extensions/MyExtension/ui/mywidget/include/
qtip/jquery.qtip.css" />');
}

Thingworx widget Extension을 만들 때, 아래 코드와 같이 renderHtml 함수에 추가하여 사용하는 방법을 제시하고 있습니다.

this.renderHtml = function() {
    
    ...
    
	if(!jQuery().ptccommonhighchart){
		this.body_append(
		'<script type="text/javascript"	src="../Common/extensions/<project>/ui/<widget>/lib/highcharts.js"></script>');
	}
}

이렇게 사용할 경우 종종 Thingworx Runtime 시에 Third-Party Javascript libraries에 정의되어 있는 기능이 정의되지 않았다고 에러가 발생하곤 합니다.

해당 에러가 발생 했을 경우 다음과 같은 방법으로 해결할 수 있습니다.

Javascript Libraries is not defined 해결법
#

  1. Thingworx Extension Project root 폴더 하위에 configfiles 폴더의 metadata.xml 파일을 열어줍니다.

    configfile

  2. metadata.xml 의 안에 필요한 third-party libraries 들을 추가합니다.

  3. <widget name="someWidget">
    	<UIResources>
            <FileResource description="" file="/lib/highcharts.js" isDevelopment="false" isRuntime="true" type="JS"></FileResource>
        </UIResources>
    </widget>
    

    FileResource

    1. file: 파일을 경로를 입력받습니다. 경로는 widget name 폴더 하위의 경로부터 시작합니다.
    2. isDevelopment : Composer 에서 필요한 소스 유무를 boolean 값으로 입력합니다.
    3. isRuntime : Runtime 에서 필요한 소스 유무를 boolean 값으로 입력합니다.
    4. type : 파일의 타입을 입력합니다.
  4. 복수의 위젯을 만들때, 첫 번째 widget에서 metadata.xml에 추가한 소스는 별도로 추가하지 않아도 됩니다.

Thingwrox Extension 개발을 위한 이클립스 환경 설정은 아래 링크의 포스트를 참고하세요.

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