Извлечение данных Avaya CMS в vba работает только при одном шаге

Когда я запускаю свой код для извлечения данных из отчета 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

1 ответ

Решение

В моей организации в основном были проблемы с взломом недокументированного VBA API для приложения-администратора avaya CMS. Я бы предложил вместо этого использовать прямое соединение ODBC с сервером Avaya. Avaya предоставляет множество документов о том, как ODBC подключается к своим серверам. Если вам нужна помощь в поиске документации avaya, относящейся к вашей установке, пожалуйста, ответьте с версией, с которой вы работаете.

Другие вопросы по тегам