2014-04-09 3 views
0

load() 형식의 콤보 상자에 QC11 프로젝트 및 도메인 이름을 나열하려고하는데 오류 개체가 필요합니다. 사용중인 코드 :VBScript (QC11 OTA)의 ALM 프로젝트 및 도메인 목록 가져 오기

Dim tdc As New TDAPIOLELib.TDConnection 
Dim projectList As Customization 
Dim Project As Customization 
Dim Domain As Customization 
Set tdc = CreateObject("TDApiOle80.TDConnection") 
tdc.InitConnectionEx "https://xyz/omu" 
For Each Domain In TheTDConnection.DomainsList 
    Set projectList = tdc.GetAllVisibleProjectDescriptors 
    For Each Project In projectList 
     ComboBox1.AddItem (Project.Name) 
     ComboBox2.AddItem (Project.DomainName) 
    Next Project 
Next Domain 
+0

"개체 필요"오류가 발생하는 문장은 무엇입니까? – Xiaofu

+0

코드를 거의 완전히 변경했습니다. 원래의 질문은 IXMLDOMNodeList와 관련이 없으며 ALM API에서 도메인 및 프로젝트를 가져 오는 것과 관련이 있습니다. 문제가 해결되면 파일 파싱 요구 사항에 대해 다른 질문을해야합니다. – Xiaofu

+0

... 다른 API를 사용하는 중! (OTA API, 지금은 SiteAdmin API였습니다) – Xiaofu

답변

0

그 다음 시작이 줄을 아마 오류 생성하는, 정말 당신이 사용하는 코드의 경우 코드의 나머지 부분을 바탕으로

For Each Domain In TheTDConnection.DomainsList 

는 "TheTDConnection"는 "TDC"되어야한다 :

For Each Domain In tdc.DomainsList 

아, 이렇게하려면 서버에 연결하기보다는 tdc.Login ...을 호출하여 거의 확실하게 로그인해야합니다.

관련 정보 DomainsList 속성은 더 이상 사용되지 않습니다. 나는 당신이 현재의 로그온 한 사용자가 접근 할 수있는 모든 도메인 아래의 모든 프로젝트를 다루기 때문에 GetAllVisibleProjectDescriptors에 의해 반환 된 ProjectDescriptor 객체리스트를 반복 할 수 있다고 생각한다.

편집 : 이것은 원래 질문을 기반으로 한 완벽한 해결책입니다. 제공된 사용자가 액세스 할 수있는 도메인/프로젝트를 순환하는 테스트 된 코드입니다. 여기서는 QC/ALM Connectivity 추가 기능이 설치되어 있다고 가정합니다 (필수). 당신이 경우

: C:\Windows\SysWOW64\wscript.exe "c:\somewhere\myscript.vbs"

msgbox "Creating connection object" 
Dim tdc 
Set tdc = CreateObject("TDApiOle80.TDConnection") 
msgbox "Connecting to QC/ALM" 
tdc.InitConnectionEx "http://<yourServer>/qcbin/" 
msgbox "Logging in" 
tdc.Login "<username>", "<password>" 
Dim projDesc 
msgbox "Getting project descriptors" 
Set projectDescriptors = tdc.GetAllVisibleProjectDescriptors 
For Each desc In projectDescriptors 
    msgbox desc.DomainName & "\" & desc.Name 
Next 
msgbox "Logging out" 
tdc.Logout 
msgbox "Disconnecting" 
tdc.Disconnect 
msgbox "Releasing connection" 
tdc.ReleaseConnection 

편집 2 : 64 비트 시스템에서 VBScript를이 조각을 실행하는 경우

당신은 wscript.exe를의 32 비트 버전을 사용하여 실행해야 sa.GetAllDomains에서 결과 XML을 서버의 모든 도메인 \ 프로젝트 항목 목록으로 구문 분석하려고합니다 (원래의 질문 & 태그가 아직 언급되었으므로 VBScript이므로 테스트를 거쳤습니다) :

Set objDoc = CreateObject("MSXML.DOMDocument") 
objDoc.Load "C:\yourXmlFile.xml" 
Set objRoot = objDoc.documentElement 

For Each domain in objRoot.selectNodes("TDXItem") 
    For Each project in domain.selectNodes("PROJECTS_LIST/TDXItem") 
    msgbox domain.selectSingleNode("DOMAIN_NAME").text & "\" & project.selectSingleNode("PROJECT_NAME").text 
    Next 
Next 
+0

OP의 코드를 보면 어쨌든 적어도 게시 된 스 니펫에서는 Domain 객체로 아무 것도하지 않습니다. – Xiaofu

+0

위 편집했거나 작동하지 않는 것 같습니다. – user635545

+0

@ user635545 먼저 로그인하려면 코드를 추가 해봤습니까? 더 구체적으로 오류를 일으키는 라인을 알려줄 수 있습니까? – Xiaofu