1

我正在使用以下代码从 HP ALM 12.5 导出项目(使用 ALM Connectivity - OTA)。目前,它在以下行失败:sa.ExportProject v_domain、v_project、v_fileName 并带有错误消息:“运行时错误 '-2147220350 (80040482): Invalid server response [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
4

1 回答 1

0

我已经解决了这个错误。代码现在运行良好并将 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 目录中。 

于 2016-11-23T15:31:28.957 回答