반응형
□ 제품에 포함된 Folder 이름 가져오기 (Get Folder Names Included in the Product)
제품에는 기본 Folder가 있습니다. 기본 Folder 아래에 사용자가 정의한 Folder들이 있습니다.
The product has a default Folder. Under the default Folder, there are user-defined Folders.
WRS를 이용하여 URL 주소 및 기능을 테스트 합니다
Test URL addresses and functionality using WRS
EX)
Url = "http://WC Adress/Windchill/servlet/odata/v6/DataAdmin/Containers('" & ProductIDInput & "')/Folders?%24count=true"
ProductIDInput = Worksheets("Folder Name").Cells(2, "E").Value
□ Code #1
기본 Folder의 ID를 "ProductFolderID"에 저장하는 코드 입니다
This is the code to save the ID of the default folder to "ProductFolderID"
Option Explicit
Public ProductIDInput As String
Public ProductFolderID As String
Sub FolderName01()
'// 오류 발생 시 오류 메시지 출력
On Error Resume Next
Call MainGetToken.GetToken001
'// 변수
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.XMLHTTP.6.0")
Dim Url As String
Dim requestBody As String
Dim GetresponseText As String
Dim status As Integer
Dim jsonObject As Object
Dim jsonItem As Object
Dim ProductType As String
ProductIDInput = Worksheets("Folder Name").Cells(2, "E").Value
'// URL 설정
Url = "http://WC Adress/Windchill/servlet/odata/v6/DataAdmin/Containers('" & ProductIDInput & "')/Folders?%24count=true"
'// 서버와의 연결 열기
xmlhttp.Open "GET", Url, False
'//요청 헤더 설정
xmlhttp.SetRequestHeader "Content-Type", "application/json"
xmlhttp.SetRequestHeader "CSRF_NONCE", NonceTorken("NonceValue")
'//요청 보내기
xmlhttp.Send requestBody
'// 오류 발생 시 디버그 창에 오류 메시지 출력
If Err.Number <> 0 Then
Debug.Print "Error " & Err.Number & ": " & Err.Description
On Error GoTo 0
Exit Sub
End If
'// 응답 상태 코드 가져오기
status = xmlhttp.status
'// 응답 텍스트 가져오기
GetresponseText = xmlhttp.responseText
'// JSON 파싱
Set jsonObject = JsonConverter.ParseJson(GetresponseText)
'// ProductFolderID 출력
For Each jsonItem In jsonObject("value")
ProductFolderID = jsonItem("ID")
Next jsonItem
'// 정리 작업
Set xmlhttp = Nothing
End Sub
□ Code #2
"ProductFolderID" 폴더 안에 있는 폴더 이름들을 표시 합니다.
Displays the folder names inside the "ProductFolderID" folder.
Sub FolderName02()
'// 오류 발생 시 오류 메시지 출력
On Error Resume Next
Call FolderName01
'// 변수
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.XMLHTTP.6.0")
Dim Url As String
Dim requestBody As String
Dim GetresponseText As String
Dim status As Integer
Dim jsonObject As Object
Dim jsonItem As Object
Dim ProductType As String
Dim j As Integer
'// URL 설정
Url = "http://WC Adress/Windchill/servlet/odata/v6/DataAdmin/Containers('" & ProductIDInput & "')/Folders('" & ProductFolderID & "')/Folders?%24count=true"
'// 서버와의 연결 열기
xmlhttp.Open "GET", Url, False
'//요청 헤더 설정
xmlhttp.SetRequestHeader "Content-Type", "application/json"
xmlhttp.SetRequestHeader "CSRF_NONCE", NonceTorken("NonceValue")
'//요청 보내기
xmlhttp.Send requestBody
'// 오류 발생 시 디버그 창에 오류 메시지 출력
If Err.Number <> 0 Then
Debug.Print "Error " & Err.Number & ": " & Err.Description
On Error GoTo 0
Exit Sub
End If
'// 응답 상태 코드 가져오기
status = xmlhttp.status
'// 응답 텍스트 가져오기
GetresponseText = xmlhttp.responseText
'// JSON 파싱
Set jsonObject = JsonConverter.ParseJson(GetresponseText)
j = 1
For Each jsonItem In jsonObject("value")
Worksheets("Folder Name").Cells(j + 4, "A") = j
Worksheets("Folder Name").Cells(j + 4, "B") = jsonItem("Name")
Worksheets("Folder Name").Cells(j + 4, "C") = jsonItem("ID")
Worksheets("Folder Name").Cells(j + 4, "D") = jsonItem("Description")
Worksheets("Folder Name").Cells(j + 4, "E") = jsonItem("Location")
Worksheets("Folder Name").Cells(j + 4, "F") = jsonItem("LastModified")
j = j + 1
Next jsonItem
'// 응답 상태 및 텍스트 출력 (디버깅 용도)
'//Debug.Print "Status: " & status
'//Debug.Print "Response: " & GetresponseText
'// 정리 작업
Set xmlhttp = Nothing
End Sub
□ 제품 이름 가져오기 (Get Product Name)
□ 폴더 이름 가져오기 (Get Product Name)
'VBA For Windchill' 카테고리의 다른 글
Windchill & VBA 10) Retrieving Folder Contents of a Specific Type (0) | 2024.08.03 |
---|---|
Windchill & VBA 10) Get CADDocuments #2 (0) | 2024.08.03 |
Windchill & VBA 10) Get CADDocuments #1 (0) | 2024.07.31 |
OData(Open Data Protocol)? (0) | 2024.07.31 |
Windchill & VBA 01) VBA 환경 설정 (VBA Preferences) (0) | 2024.07.30 |