HP ALM Connectivity OTA - 导出项目错误
HP ALM Connectivity OTA - Export Projects Error
我正在使用以下 code 从 HP ALM 12.5 导出项目(使用 ALM 连接 - OTA)。目前,它在以下行失败:sa.ExportProject v_domain、v_project、v_fileName
错误消息:“运行-time error '-2147220350 (80040482):无效的服务器响应 [ERR-SEP]。任何纠正此错误的反馈将不胜感激。
提前致谢。
代码如下:
Sub ALM_Backup()
Dim v_qcURL, sa, v_username, v_pasword
Dim v_domain, v_project, v_date, v_fileName, bugId, v_summary
Dim v_projectList, v_domainProject, v_domainProjectArray
' The following code is to move the existing files from to source to destination folder
Dim fso
Dim sfol As String
Dim dfol As String
sfol = "C:\ALM Backup"
dfol = "C:\ALM Backup Archive"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile (sfol & "\*.*"), dfol 'Change "\*.*" to "\*.qcp"
v_qcURL = "https://qcurl"
v_projectList = "Domain1:Project1;Domain2:Project2;Domain3:Project3"
v_username = "userid"
v_password = "password"
For Each v_domainProject In Split(v_projectList, ";")
v_domainProjectArray = Split(v_domainProject, ":")
v_domain = v_domainProjectArray(0)
v_project = v_domainProjectArray(1)
v_year = Year(Now)
v_month = Month(Now)
v_day = Day(Now)
v_hour = Hour(Now)
v_minute = Minute(Now)
v_second = Second(Now)
If v_month < 10 Then
v_month = "0" & v_month
End If
If v_day < 10 Then
v_day = "0" & v_day
End If
If v_hour < 10 Then
v_hour = "0" & v_hour
End If
If v_minute < 10 Then
v_minute = "0" & v_minute
End If
If v_second < 10 Then
v_second = "0" & v_second
End If
v_date = v_year & v_month & v_day & v_hour & v_minute & v_second
v_fileName = "C:\ALM_Backup" & v_date & "_" & v_project & ".qcp"
v_summary = "For project <" & v_domainProject & "> backup started: " & v_date
bugId = openDefect(v_summary)
Set sa = CreateObject("SAClient.SaApi")
sa.Login v_qcURL, v_username, v_password
sa.SendAllQualifiedNow "IT", "QA_Internal_Projects"
sa.SendMessageToProjectConnectedUsers v_domain, v_project, "This project is going to be deactivated due to maintenence."
sa.DisconnectProject v_domain, v_project
sa.DeactivateProject v_domain, v_project
sa.ExportProject v_domain, v_project, v_fileName
sa.ActivateProject v_domain, v_project
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(v_fileName)
fixAndCloseDefect bugId, v_fileName & ": " & Round((f.Size / 1024) / 1024, 2) & " MB"
sa.SendAllQualifiedNow "IT", "QA_Internal_Projects"
Next
sa.Logout
End Sub
Function openDefect(p_summary)
v_detectionDate = Day(Now) & "." & Month(Now) & "." & Year(Now)
If Day(Now) < 10 Then
v_detectionDate = "0" & Day(Now) & "." & Month(Now) & "." & Year(Now)
End If
If Month(Now) < 10 Then
v_detectionDate = Day(Now) & ".0" & Month(Now) & "." & Year(Now)
End If
If Month(Now) < 10 And Day(Now) < 10 Then
v_detectionDate = "0" & Day(Now) & ".0" & Month(Now) & "." & Year(Now)
End If
Set tdc = CreateObject("TDApiOle80.TDConnection")
tdc.InitConnectionEx "http://qcurl"
tdc.Login "userid", "password"
tdc.Connect "IT", "QA_Internal_Projects"
Set bfact = tdc.BugFactory
Set mybug = bfact.AddItem(Null)
mybug.Summary = p_summary
mybug.Status = "Open"
mybug.Field("BG_SEVERITY") = "2-Medium"
mybug.DetectedBy = "userid"
mybug.Field("BG_DETECTION_DATE") = Date
mybug.Post
bugId = mybug.ID
tdc.Logout
tdc.Disconnect
openDefect = bugId
End Function
Function fixAndCloseDefect(p_bugId, p_comment)
Set tdc = CreateObject("TDApiOle80.TDConnection")
tdc.InitConnectionEx "https://qcurl"
tdc.Login "userid", "passsword"
tdc.Connect "IT", "QA_Internal_Projects"
Set bfact = tdc.BugFactory
Set bgfilter = bfact.Filter
bgfilter.Filter("BG_BUG_ID") = p_bugId
Set bglist = bgfilter.NewList
For Each theBug In bglist
Set bg = bfact.Item(theBug.ID)
bg.Field("BG_STATUS") = "Closed"
bg.Field("BG_DEV_COMMENTS") = "Backup completed on <backup_host>: " & p_comment
bg.Post
Next
tdc.Logout
tdc.Disconnect
End Function
我已经解决了错误。代码现在 运行 很好,可以将 ALM 项目导出到 .qcp 文件中。
这是解决方法。
我刚刚将 v_fileName 变量更改为有一个斜线
之前是:
v_fileName = "C:\ALM_Backup" & v_date & "_" & v_project & ".qcp"
更改为:
v_fileName = "C:\ALM_Backup\" & v_date & "_" & v_project & ".qcp"
发生错误的原因是 "ALM_Backup" 后没有新添加的反斜杠,程序试图将文件保存在 C 目录而不是 C:\ALM_Backup 目录中。
我正在使用以下 code 从 HP ALM 12.5 导出项目(使用 ALM 连接 - OTA)。目前,它在以下行失败:sa.ExportProject v_domain、v_project、v_fileName 错误消息:“运行-time error '-2147220350 (80040482):无效的服务器响应 [ERR-SEP]。任何纠正此错误的反馈将不胜感激。
提前致谢。
代码如下:
Sub ALM_Backup()
Dim v_qcURL, sa, v_username, v_pasword
Dim v_domain, v_project, v_date, v_fileName, bugId, v_summary
Dim v_projectList, v_domainProject, v_domainProjectArray
' The following code is to move the existing files from to source to destination folder
Dim fso
Dim sfol As String
Dim dfol As String
sfol = "C:\ALM Backup"
dfol = "C:\ALM Backup Archive"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile (sfol & "\*.*"), dfol 'Change "\*.*" to "\*.qcp"
v_qcURL = "https://qcurl"
v_projectList = "Domain1:Project1;Domain2:Project2;Domain3:Project3"
v_username = "userid"
v_password = "password"
For Each v_domainProject In Split(v_projectList, ";")
v_domainProjectArray = Split(v_domainProject, ":")
v_domain = v_domainProjectArray(0)
v_project = v_domainProjectArray(1)
v_year = Year(Now)
v_month = Month(Now)
v_day = Day(Now)
v_hour = Hour(Now)
v_minute = Minute(Now)
v_second = Second(Now)
If v_month < 10 Then
v_month = "0" & v_month
End If
If v_day < 10 Then
v_day = "0" & v_day
End If
If v_hour < 10 Then
v_hour = "0" & v_hour
End If
If v_minute < 10 Then
v_minute = "0" & v_minute
End If
If v_second < 10 Then
v_second = "0" & v_second
End If
v_date = v_year & v_month & v_day & v_hour & v_minute & v_second
v_fileName = "C:\ALM_Backup" & v_date & "_" & v_project & ".qcp"
v_summary = "For project <" & v_domainProject & "> backup started: " & v_date
bugId = openDefect(v_summary)
Set sa = CreateObject("SAClient.SaApi")
sa.Login v_qcURL, v_username, v_password
sa.SendAllQualifiedNow "IT", "QA_Internal_Projects"
sa.SendMessageToProjectConnectedUsers v_domain, v_project, "This project is going to be deactivated due to maintenence."
sa.DisconnectProject v_domain, v_project
sa.DeactivateProject v_domain, v_project
sa.ExportProject v_domain, v_project, v_fileName
sa.ActivateProject v_domain, v_project
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(v_fileName)
fixAndCloseDefect bugId, v_fileName & ": " & Round((f.Size / 1024) / 1024, 2) & " MB"
sa.SendAllQualifiedNow "IT", "QA_Internal_Projects"
Next
sa.Logout
End Sub
Function openDefect(p_summary)
v_detectionDate = Day(Now) & "." & Month(Now) & "." & Year(Now)
If Day(Now) < 10 Then
v_detectionDate = "0" & Day(Now) & "." & Month(Now) & "." & Year(Now)
End If
If Month(Now) < 10 Then
v_detectionDate = Day(Now) & ".0" & Month(Now) & "." & Year(Now)
End If
If Month(Now) < 10 And Day(Now) < 10 Then
v_detectionDate = "0" & Day(Now) & ".0" & Month(Now) & "." & Year(Now)
End If
Set tdc = CreateObject("TDApiOle80.TDConnection")
tdc.InitConnectionEx "http://qcurl"
tdc.Login "userid", "password"
tdc.Connect "IT", "QA_Internal_Projects"
Set bfact = tdc.BugFactory
Set mybug = bfact.AddItem(Null)
mybug.Summary = p_summary
mybug.Status = "Open"
mybug.Field("BG_SEVERITY") = "2-Medium"
mybug.DetectedBy = "userid"
mybug.Field("BG_DETECTION_DATE") = Date
mybug.Post
bugId = mybug.ID
tdc.Logout
tdc.Disconnect
openDefect = bugId
End Function
Function fixAndCloseDefect(p_bugId, p_comment)
Set tdc = CreateObject("TDApiOle80.TDConnection")
tdc.InitConnectionEx "https://qcurl"
tdc.Login "userid", "passsword"
tdc.Connect "IT", "QA_Internal_Projects"
Set bfact = tdc.BugFactory
Set bgfilter = bfact.Filter
bgfilter.Filter("BG_BUG_ID") = p_bugId
Set bglist = bgfilter.NewList
For Each theBug In bglist
Set bg = bfact.Item(theBug.ID)
bg.Field("BG_STATUS") = "Closed"
bg.Field("BG_DEV_COMMENTS") = "Backup completed on <backup_host>: " & p_comment
bg.Post
Next
tdc.Logout
tdc.Disconnect
End Function
我已经解决了错误。代码现在 运行 很好,可以将 ALM 项目导出到 .qcp 文件中。
这是解决方法。
我刚刚将 v_fileName 变量更改为有一个斜线
之前是:
v_fileName = "C:\ALM_Backup" & v_date & "_" & v_project & ".qcp"
更改为:
v_fileName = "C:\ALM_Backup\" & v_date & "_" & v_project & ".qcp"
发生错误的原因是 "ALM_Backup" 后没有新添加的反斜杠,程序试图将文件保存在 C 目录而不是 C:\ALM_Backup 目录中。