Can I determine the Connection state of Eikon Excel with VBA?

Can I determine the Connection state of Eikon Excel with VBA?

Best Answer

  • DevTrev
    Answer ✓

    Yes. The PLSynchronizationMgr Library can do this. It is not contained in the PLVbaApis.bas file but the PLVbaApis.dll accommodates the Library so CreateReutersObject() can be used with the dll declared and Tools, References in the Visual Basic Editor for the PLSynchronizationMgr.dll in the Thomson Reuters Eikon installation directory.


    The PLSynchronizationMgr has a Login method and a number of events including OnConnection, OnDisconnection, OnPause, OnRefresh, OnResume. It can be used in conjunction withApplication.Run "PLPaseResumeEventHandler", which toggles between Eikon for Excel/Eikon - Microsoft Office Resume Updates and Pause Updates.

    #If VBA7 Then
    Private Declare PtrSafe Function CreateReutersObject Lib "PLVbaApis.dll" (ByVal progID As String) As Object
    #Else
    Private Declare Function CreateReutersObject Lib "PLVbaApis.dll" (ByVal progID As String) As Object
    #End If


    Dim WithEvents myPLSM As PLSynchronizationMgrLib.SynchronizationMgr

    Sub connectionPlay()
    Dim strConnMode As String, strConnState As String, strUpdateStatus As String

    Set myPLSM = CreateReutersObject("PLSynchronizationMgr.SynchroMgr")

    With myPLSM
    Select Case .ConnectionMode
    'PLConnectionModeTypes - 'PL_CONNECTION_MODE_NONE 0
    'PL_CONNECTION_MODE_MPLS 1, 'PL_CONNECTION_MODE_INTERNET 2
    Case 0
    strConnMode = "0 - PL_CONNECTION_MODE_NONE"
    Case 1
    strConnMode = "1 - PL_CONNECTION_MODE_MPLS"
    Case 2
    strConnMode = "2 - PL_CONNECTION_MODE_INTERNET"
    End Select

    Select Case .ConnectionState
    'PLConnectionStateTypes - PL_CONNECTION_STATE_NONE 0
    'PL_CONNECTION_STATE_MINIMAL 1, PL_CONNECTION_STATE_WAITING_FOR_LOGIN 2
    'PL_CONNECTION_STATE_ONLINE 3, PL_CONNECTION_STATE_OFFLINE 4
    'PL_CONNECTION_STATE_LOCAL_MODE 5
    Case 0
    strConnState = "0 - PL_CONNECTION_STATE_NONE"
    Case 1
    strConnState = "1 - PL_CONNECTION_STATE_MINIMAL"
    Case 2
    strConnState = "2 - PL_CONNECTION_STATE_WAITING_FOR_LOGIN"
    Case 3
    strConnState = "3 - PL_CONNECTION_STATE_ONLINE"
    Case 4
    strConnState = "4 - PL_CONNECTION_STATE_OFFLINE"
    Case 5
    strConnState = "5 - PL_CONNECTION_STATE_LOCAL_MODE"
    End Select

    Select Case .UpdatesStatus
    'PLUpdateStatusTypes - PL_UPDATES_STATUS_NONE 0
    'PL_UPDATES_STATUS_STREAMING 1, PL_UPDATES_STATUS_PAUSED 2
    Case 0
    strUpdateStatus = "0 - PL_UPDATES_STATUS_NONE"
    Case 1
    strUpdateStatus = "1 - PL_UPDATES_STATUS_STREAMING"
    Case 2
    strUpdateStatus = "2 - PL_UPDATES_STATUS_PAUSED"
    End Select

    MsgBox "Connection Mode: " & strConnMode & Chr(13) & _
    "Connection State: " & strConnState & Chr(13) & "Updates Status: " & strUpdateStatus


    If .ConnectionState = 2 Then
    ' If the user log in details are already set for automatic log in, this will log in EfE, OR provide the log in dialogue box otherwise.
    If MsgBox("Eikon for Excel is eready to log in. Do you want to log in?", _
    vbYesNo, "Log in to Eikon for Excel?") = vbYes Then _
    .Login
    End If
    End With
    End Sub

Answers

  • @DevTrev

    Hi,

    one question, when is this "connectionPlay" sub starting?

    Will it automaticly start or do I have to call it somewhere in my code? I dont understand "withEvents" aswell. Would be nice if there is any help.

    Thanks!