簡體   English   中英

vba中的Avaya CMS數據提取僅在單步執行時有效

[英]Avaya CMS data extraction in vba only works when single stepping

當我運行代碼以從CMS報告中檢索數據時,如果我單步執行該代碼,則該代碼有效,但是,如果我正常運行,它(最終)將失敗,並且MS Access停止響應。

' Sets parameters for report
cmsReport.SetProperty reportPrompt(1, 1), reportPrompt(1, 2)
cmsReport.SetProperty reportPrompt(2, 1), reportPrompt(2, 2)
cmsReport.SetProperty reportPrompt(3, 1), reportPrompt(3, 2)
' Runs report and extracts results
EmptyClipboard
b = cmsReport.ExportData("", 44, 0, True, True, True)
Do While ClipboardEmpty
    ' for some reason, avaya doesn't always copy to clipboard, so keep repeating it until it gives up the data!
    b = cmsReport.ExportData("", 44, 0, True, True, True)
Loop

用於檢查剪貼板的子例程,並在嘗試將數據放入剪貼板之前清空它:

Private Declare Function apiOpenClipboard Lib "user32" Alias "OpenClipboard" (ByVal hWnd As Long) As Long
Private Declare Function apiEmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long
Private Declare Function apiCloseClipboard Lib "user32" Alias "CloseClipboard" () As Long
Private Declare Function CountClipboardFormats Lib "user32" () As Long

Sub EmptyClipboard()
If apiOpenClipboard(0&) <> 0 Then
    Call apiEmptyClipboard
    Call apiCloseClipboard
End If
End Sub

Function ClipboardEmpty() As Boolean
ClipboardEmpty = (CountClipboardFormats() = 0)
End Function

我對對象使用后期綁定,並且安裝了Avaya CMS 16.2。
我嘗試設置超時,但沒有成功(行或行和行都無法解決問題)

cmsConnection.lTimeOutSecs = 60
cmsConnection.bTimeOutEnable = False

在我的組織中,大多數情況下,對於將未記錄的VBA API入侵avaya CMS主管應用程序,我們非常沮喪。 我建議改為使用與Avaya服務器的直接ODBC連接。 Avaya提供了大量有關如何ODBC連接到其服務器的文檔。 如果需要幫助來查找特定於您的安裝的avaya文檔,請以您使用的版本進行答復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM