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

Thingworx 테스트 Tip (2) - 브라우저 개발자 도구 콘솔을 통한 Thingworx Session 객체 접근 및 조작

·2 분· loading · loading ·
Sseung
Solution Thingworx Debug Test
InnoFactory
작성자
InnoFactory
스마트팩토리, 산업자동화, Digital Transformation, 디지털팩토리, PLM, ALM, Digital Manufacturing, Visualization, 3D CAD, Digital Twin, Big Data, IIoT 솔루션 전문업체
작성자
SeungHyeon Lee
R&D Center Developer
Thingworx 테스트 Tip - 이 글은 시리즈의 일부입니다.
부분 2: 이 글

Thingworx Mashup 개발 시 로직의 순서 제어를 위해 Thingworx의 Session에 설정한 사용자 지정 속성의 이벤트를 이용하는 작업이 필요한 경우가 있습니다.

하지만 필요한 이벤트를 trigger 하기 위해 선행되어야 하는 동작들이 있을 수 있으며, 그 동작들을 테스트를 통해 인위적으로 발생시키기 위해서는 많은 양의 테스트 서비스 작성 및 서비스/이벤트 바인딩이 수행되었다가 테스트 후에 원복 시켜야 하는 불편함이 발생하기도 합니다.

브라우저의 개발자 도구의 콘솔을 이용하여 Thingworx의 Session 객체에 접근하고, 객체의 내장 함수를 통해 Thingworx Session 의 특정 사용자 지정값을 get/set 하거나, 세션 값이 변경 될 경우에 발생하는 이벤트를 trigger 할 수 있습니다. 이는 별도의 테스트용 서비스 작성 및 서비스/이벤트 바인딩 작업을 줄여 작업 시간 단축을 기대할 수 있을 것입니다.

이번 글에서는 Thingworx Session 값 제어에 대해 알아보고, 다음 글에서 Session 이벤트 제어와 서비스 이벤트 제어까지 알아보도록 하겠습니다.

Thingworx Session 객체를 통한 Session 값 제어
#

사용자 지정 Session Properties 추가를 위한 GlobalSessionProperties 수정
#

Thingworx Composer에서 검색창에 “GlobalSessionProperties “을 검색합니다.

image-20230831165710868

해당 Thing Shape의 Properties and Alert 탭으로 접근합니다.

image-20230831165732713

+Add 버튼을 눌러 추가할 세션 Property를 생성합니다.

image-20230831165537706

이제 Mashup 에디터에서 Session 탭에서 해당 세션 값을 확인 가능하고, 이벤트 및 값을 바인딩 할 수 있습니다.

image-20230831231748752

브라우저 개발자 도구 콘솔을 이용한 Thingworx Session 객체 접근
#

브라우저 개발자 도구의 콘솔에서 아래의 명령어를 입력해 Thingworx Session 객체를 접근해 보겠습니다.

TW.Runtime.Session

image-20230831232237890

Thingworx의 Runtime의 Session 객체에 접근하면 해당 객체에서 사용가능한 함수를 확인할 수 있습니다.

Thingworx Session 객체 값 Set
#

Thingworx의 Runtime의 Session 객체에서 제공하는 함수를 통해 세션 값을 설정 할 수 있습니다.

TW.Runtime.Session.SetSessionValue('a_test_globalSession', 'testValue');

위의 명령어를 입력하여 a_test_globalSession 에 ’testValue’라는 문자열 값을 저장할 수 있습니다.

Thingworx Session 객체 값 Get
#

이번에는 Thingworx의 Runtime의 Session 객체에서 제공하는 함수를 통해 세션 값을 취득해 보겠습니다.

TW.Runtime.Session.GetSessionValue('a_test_globalSession');

위의 명령어를 입력하여 a_test_globalSession 에 저장된 값을 불러올 수 있으며 위에서 ’testValue’를 이미 설정한 상태이기 때문에 결과는 ’testValue’ 가 되어야 할 것입니다.

image-20230831232843230

위 그림과 같이 세션에 Set/Get이 성공적으로 수행되었음을 확인할 수 있습니다.

연관된 글
#

Thingworx 테스트 Tip - 이 글은 시리즈의 일부입니다.
부분 2: 이 글

관련 글

Thingworx 테스트 Tip (1) - 브라우저 개발자 도구 네트워크 기능을 이용한 로직 디버깅
·2 분· loading · loading
Sseung
Solution Thingworx Debug Test
Thingworx Mashup 개발에는 Mashup에 연결된 Thing의 서비스, 세션 변수, UI 간의 이벤트 바인딩으로 로직을 구성하고 서비스 input/output 바인딩의 작업을 필요로 합니다.
Thingworx 로그인 세션 타임아웃 설정과 로그인 시도 보안 설정
·2 분· loading · loading
Sseung
Solution Thingworx Subsystem Timeout
Thingworx는 시스템 설정을 구성할 수 있는 기능을 제공하는 시스템 통합 도구 Subsystem을 제공합니다. User Management Subsystem은 Thingworx의 비밀번호 암호화 알고리즘과 알고리즘에서 사용되는 몇가지 변수를 설정할 수 있습니다.
Thingworx - Kepserver(Kepware) 간 연동 환경 에서 Remote Thing 연결 끊김 현상 발생 시 Scheduler 를 통한 문제 해결 대안 제시
·3 분· loading · loading
Sseung
Solution Thingworx Scheduler Kepware Kepserver Remotething
Thingworx - Kepserver(Kepware) 간 연동 환경에서 문제 발생 케이스 # 다양한 프로젝트를 진행하면서 Thingworx와 Kepserver(Kepware) 간 연동 시 간혹 Kepserver에 내장된 OPC UA Client 상에서 확인할 때는 소스와 Kepserver 상의 태그의 연결 상태가 정상임에도 불구하고 Remote Thing 의 Connection 상태가 해제되는 연결 끊김 현상이 발생하는 경우가 있었습니다.