본문 바로가기
  • Welcome!
VBA For Windchill

WC VBA : Accessing a Windchill Server from a Session.

by ToolBOX01 2024. 6. 19.
반응형

이 VB API를 사용하면 Windchill 데이터베이스와 VB 응용 프로그램 간의 연결 역할을 하는 Windchill 서버를 등록할 수 있습니다

VB API에서 Windchill 서버를 참조할 때 다음 식별자를 사용할 수 있습니다.

  • Codebase URL : Windchill 서버에 연결하는 데 사용되는 URL의 루트 부분입니다. 예를 들면 "http://wcserver.company.com/Windchill" 입니다.
  • Server Alias :  서버가 등록된 후 서버를 참조하는 데 사용됩니다. 별칭은 서버 작업공간 및 공통공간에서 파일에 대한 경로를 구성하는 데에도 사용됩니다. 서버 별칭은 사용자 또는 애플리케이션에 의해 선택되며 코드베이스 URL과 직접적인 관계가 있을 필요는 없습니다. 별칭은 my_alias와 같은 일반적인 이름일 수 있습니다.

□ Windchill 서버 작업을 시작하려면 에 서버를 등록하여 연결을 설정해야 합니다. 이 섹션에 설명된 방법을 사용하면 Windchill 서버에 연결하고 서버와 관련된 정보에 액세스할 수 있습니다.

 

IpfcBaseSession.AuthenticateBrowser() 유효한 사용자 이름과 비밀번호를 사용하여 인증 컨텍스트를 설정하려면 IpfcBaseSession.AuthenticateBrowser() 메서드를 사용하세요. 
이 메서드를 성공적으로 호출하면 세션이 사용자 이름과 비밀번호 조합을 허용하는 모든 서버에 등록될 수 있습니다. 또한 이 메서드를 성공적으로 호출하면 등록 프로세스 중에 인증 대화 상자가 나타나지 않습니다. 
컨텍스트를 설정한 후 즉시 적절한 서버를 등록하는 경우 이 메서드를 여러 번 호출하여 원하는 수의 Windchill 서버에 대한 인증 컨텍스트를 설정할 수 있습니다.
IpfcBaseSession.GetServerLocation()  
IpfcServerLocation.Class IpfcServerLocation.Class 속성은 서버 또는 서버 위치의 클래스를 지정합니다.
IpfcServerLocation.Location IpfcServerLocation.Location 속성은 가능한 서버에 대한 코드베이스 URL을 나타내는 IpfcServerLocation 개체를 지정합니다. 
서버가 아직 등록되지 않았을 수 있지만 이 개체와 여기에 포함된 메서드를 사용하여 등록 전에 서버에 대한 정보를 수집할 수 있습니다.
IpfcServerLocation.Version IpfcServerLocation.Version 등록 정보는 서버 또는 서버 위치에 구성된 Windchill 버전(예: 9.0 또는 10.0)을 지정합니다. 
이 메서드는 서버 코드베이스 URL을 입력으로 받아들입니다.
IpfcServerLocation.List Contexts () IpfcServerLocation.ListContexts() 메소드는 지정된 서버에 대해 사용 가능한 모든 컨텍스트 목록을 제공합니다. 

컨텍스트는 작업공간을 제품, 프로젝트 또는 라이브러리와 연관시키는 데 사용됩니다.
IpfcServerLocation.CollectWorkspaces() IpfcServerLocation.CollectWorkspaces() 메서드는 지정된 서버에 대해 사용 가능한 작업공간 목록을 반환합니다. 반환된 작업 공간 개체에는 각 작업 공간의 이름과 해당 컨텍스트가 포함됩니다.

 

기본 서버 작업 :  다음 그림은 이러한 위치 간에 데이터가 전송되는 방법을 보여줍니다.


▷▷Commonspace의 Contexts를 모두 표시 하는 코드 입니다. 

 

Option Explicit
Sub IDTWindchill()

        On Error GoTo RunError
    Application.EnableEvents = False
    
     '// Module Name : CreoVBAStart
    Call CreoVBAStart001.CreoConnt
    
    Dim WCServer As IpfcServer
    Dim WCServerLocation As IpfcServerLocation
    Dim Contexts As Istringseq
    Dim i As Integer
    
    Set WCServer = BaseSession.GetActiveServer
    Set WCServerLocation = WCServer
    
    Set Contexts = WCServerLocation.ListContexts
    
    For i = 0 To Contexts.Count - 1
    
            Cells(i + 8, "B") = Contexts.Item(i)
    Next i
    
'// Disconnect with Creo
conn.Disconnect (2)

'//Cleanup
Set asynconn = Nothing
Set conn = Nothing
Set BaseSession = Nothing
Set model = Nothing
    
    
RunError:
            If Err.Number <> 0 Then
                MsgBox "Process Failed: An error occurred." & vbCrLf & _
                       "Error No: " & CStr(Err.Number) & vbCrLf & _
                       "Error Description: " & Err.Description & vbCrLf & _
                       "Error Source: " & Err.Source, vbCritical, "Error"
                If Not conn Is Nothing Then
                    If conn.IsRunning Then
                        conn.Disconnect (2)
                    End If
                End If
            End If

End Sub

 

프로시져 실행 결과

사이트, 조직, 제품. 라이브러리, 프로젝트 컨텍스트들이 표시 됩니다.

WC EXCEL