티스토리 뷰

이 글에서는 디아뎀에서 채널에 대한 프로퍼티를 생성하고 이를 활용하는 방법에 대해서알아보도록 하겠습니다. 디아뎀은 TDM 혹은 다른 데이터 타입의 데이터를 읽어와서 Post Data Processing을 하는 툴입니다.


기본적으로 툴에서 Visual Basic Script(VBS)를 지원하여, 텍스트 기반으로 프로그램을 구현할 수 있는 장점을 가지고 있습니다. 

데이터를 Data Portal에 읽어오면, 관련 데이터에 대한 프로퍼티도 확인을 할 수 있습니다. 프로퍼티에 대한 확인은 아래의 그림처럼 Data Portal 아래에 나오게 됩니다. 



이러한 프로퍼티를 추가적으로 생성하고, 관련 프로퍼티를 처리하는 방법은 무엇일까요? 디아뎀에서 제공하는 ChnPropXXXX 함수를 이용하면 이러한 처리를 할 수 있습니다.


프로퍼티를 위해 디아뎀에서 제공하는 함수는 아래와 같습니다. 


 이름

기능 

 ChnPropNameChk

 채널의 새로운 프로퍼티에 대한 이름을 검사합니다.  이 함수에 새로운 프로퍼티 이름
 을 넣게 되면 PropName이라는 디아뎀 기본 변수에 이름이 지정이 됩니다.

 ChnPropCreate

 채널에 새로운 프로퍼티를 생성합니다. 

 ChnPropSet

 채널의 프로퍼티에 새로운 값을 설정합니다. 

 ChnPropGet

 채널의 프로퍼티의 값을 읽어옵니다. 

 ChnPropExist 채널에 프로퍼티가 존재하는지 검사합니다. 


위의 함수를 이용하여 채널에 프로퍼티를 생성하고, 값을 추가하고, 이 값을 읽어와서 Description이라는 프로퍼티에 복사하는 코드를 구현해보도록 하겠습니다. 아래의 코드는 채널에 Test of Property라는 프로퍼티를 생성하고 값을 설정합니다. 그리고 Description에 이 값을 복사합니다. 


dim sChnName

dim index 

dim strNew

strNew = "Test of Property"  


' Property 생성

for index = 1 to Data.Root.ActiveChannelGroup.Channels.Count

 

  sChnName = "[1]/[" + cstr(index) + "]"  

  Call ChnPropNameChk(sChnName, strNew)    

  DataType = DATATYPESTRING  

  Call ChnPropCreate(sChnName, PropName, DataType)  

  PropValue = "This is a test for " + cstr(index)  

  Call ChnPropSet(sChnName, PropName, PropValue)

  

next


' Property 설정 

for index = 1 to Data.Root.ActiveChannelGroup.Channels.Count


  sChnName = "[1]/[" + cstr(index) + "]"

  

  if ChnPropExist(sChnName ,PropName) then  

    sChnName = Str(ChnPropGet(sChnName ,PropName))

    ChnComment(index) = sChnName

  end if

  

next


프로그램을 실행하기 전에는 아래와 같이 Speed 채널에 Test of Property라는 프로퍼티가 존재하지 않습니다. 



코드를 실행하게 되면, 하위단에 Test_of_Property라는 프로퍼티가 생긴것을 확인할 수 있습니다. 프로퍼티에 값도 입력이 되었습니다. 



그리고 두번 째 For 반복문에서 이 값을 불러와 Description에 저장을 한 결과를 확인할 수 있습니다. ChnPropSet을 통해서 Description에 값을 지정할 수 있습니다. 하지만 코드를 보시면 ChnComment를 통해서 값을 저장한 것을 볼 수가 있는데요. 이는 자주 사용되는 프로퍼티에 대해서 디아뎀이 접근하기 쉽게 내부 함수를 지원하기 때문입니다. Description과 같이 자주 사용하는 프로퍼티는 함수가 만들어 져 있으니 개발이전에 이 부분을 확인하시는 것도 좋은 방법이라 생각합니다. 



이 글에서는 디아뎀에서 채널에 대한 프로퍼티를 어떻게 처리하는지에 대해서 알아보았습니다.


이 글이 도움이 되셨나요? 그렇다면 아래의 그림을 클릭해주세요.


댓글