Need this code to be translated to PB.

I have found description how it works in VB, maybe this helps:

The Betfair Sports Exchange API 6 Reference Guide (API Guide) informs us that the Login, Logout and KeepAlive functions are on the Global server, so we will add a reference to this service. On the Project menu select "Add Service Reference". Click "Advanced", then click "Add Web Reference" to show the “Add Web Reference” dialogue form. In the URL box type the URL of the WSDL for the Global service: https://api.betfair.com/global/v3/BFGlobalService.wsdl

Click "Go". VB2008 now searches. If all goes well, the BFGlobalService is found. Change the Web reference name from “com.betfair.api” to “BFGlobal”. Click "Add Reference". VB2008 now adds the reference to the project and the BFGlobal icon should appear in the Solution Explorer (this can take a bit of time).

Let’s reflect on what has just happened. Display the Object Browser. Expand the node "BetfairX.BFGlobal" and click on the "BFGlobalService" member. Here you will see all the classes, objects, properties, enums, etc. that are listed in the API Guide. This means that the entire resources of the Global API are now available to our project. We have achieved this very easily, without having to know anything about the underlying technologies (Soap, Wsdl, Xml, Http, etc.). I find this quite amazing.

We now add the code for the login, logout and keepAlive functions. Refer to the API Guide for full details of each call. Add this code within the TestForm class, at the top:

Code:
Public Class TestForm
    Dim oHeaderGL As New BFGlobal.APIRequestHeader
    Dim BetfairGL As New BFGlobal.BFGlobalService
    Dim WithEvents BetFairUK As New BFUK.BFExchangeService     'The UK ExchangeService object

    Private StateCount As Integer    'The unique state object

    Const SessTokFile = "C:\Betfair\SessToken.txt"

    Function oHeaderUK() As BFUK.APIRequestHeader
        Dim Header As New BFUK.APIRequestHeader
        Header.sessionToken = oHeaderGL.sessionToken
        Return Header
    End Function

    Sub CheckHeader(ByVal Header As BFUK.APIResponseHeader)
        With Header
            Print("HeaderCode = " & .errorCode.ToString)
            oHeaderGL.sessionToken = .sessionToken
        End With
    End Sub

    Sub CheckHeader(ByVal Header As BFGlobal.APIResponseHeader)
        With Header
            Print("HeaderCode = " & .errorCode.ToString)
            oHeaderGL.sessionToken = .sessionToken
        End With
    End Sub

    Sub Print(ByVal Message As String)
        With TextBox200
            .SelectionStart = .Text.Length
            .SelectedText = vbCrLf & Message
        End With
    End Sub
    Sub Printt(ByVal Message As String)
        With tlogg
            .SelectionStart = .Text.Length
            .SelectedText = vbCrLf & Message
        End With
    End Sub
    Private Sub bLogout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bLogout.Click
        Printt("*** Logout ***")
        Dim oLogoutReq As New BFGlobal.LogoutReq
        Dim oLogoutResp As New BFGlobal.LogoutResp
        oLogoutReq.header = oHeaderGL
        oLogoutResp = BetfairGL.logout(oLogoutReq)     'Call the API
        With oLogoutResp
            CheckHeader(.header)
            Print("ErrorCode = " & .errorCode.ToString)
        End With
    End Sub

    Private Sub bKeepAlive_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bKeepAlive.Click
        Print("*** KeepAlive ***")
        Dim oKeepAliveReq As New BFGlobal.KeepAliveReq
        Dim oKeepAliveResp As New BFGlobal.KeepAliveResp
        oKeepAliveReq.header = oHeaderGL
        oKeepAliveResp = BetfairGL.keepAlive(oKeepAliveReq)     'Call the API
        CheckHeader(oKeepAliveResp.header)
    End Sub

    Private Sub bLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bLogin.Click
        Print("*** Login ***")
        Dim oLoginReq As New BFGlobal.LoginReq
        Dim oLoginResp As New BFGlobal.LoginResp
        With oLoginReq
            .username = "xxxxxxx"
            .password = "xxxxxxx"
            .productId = 82           'For free API
        End With
        oLoginResp = BetfairGL.login(oLoginReq)     'Call the API
        With oLoginResp
            CheckHeader(.header)
            Print("ErrorCode = " & .errorCode.ToString)
        End With
    End Sub

    Private Sub TestForm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        My.Computer.FileSystem.WriteAllText(SessTokFile, oHeaderGL.sessionToken, False)
    End Sub

    Private Sub TestForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        oHeaderGL.sessionToken = My.Computer.FileSystem.ReadAllText(SessTokFile)
    End Sub

    Private Sub bEvents_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bEvents.Click
        Print("*** Events ***")
        Dim oEventsReq As New BFGlobal.GetEventTypesReq             'Create request object
        Dim oEventsResp As New BFGlobal.GetEventTypesResp           'Create response object
        oEventsReq.header = oHeaderGL                               'Load request parameters
        oEventsResp = BetfairGL.getActiveEventTypes(oEventsReq)     'Call the API
        With oEventsResp
            CheckHeader(.header)                                    'Check response header
            Print("ErrorCode = " & .errorCode.ToString)
            If .errorCode = BFGlobal.GetEventsErrorEnum.OK Then     'Check the response errorcode
                For i = 0 To .eventTypeItems.Length - 1             'Process the received data
                    With .eventTypeItems(i)
                        Print(.name & " (" & .id & ")")
                    End With
                Next
            End If
        End With
    End Sub
End class




Module AllMarkets
    Class MarketDataType           'For getAllMarkets data
        Public marketId As Integer
        Public marketName As String
        Public marketType As String
        Public marketStatus As String
        Public eventDate As DateTime
        Public menuPath As String
        Public eventHeirachy As String
        Public betDelay As Integer
        Public exchangeId As Integer
        Public countryCode As String
        Public lastRefresh As DateTime
        Public noOfRunners As Integer
        Public noOfWinners As Integer
        Public totalAmountMatched As Double
        Public bspMarket As Boolean
        Public turningInPlay As Boolean
        Public marketDisplayTime As DateTime
    End Class

    Class UnpackAllMarkets       'For getAllMArkets
        Public marketData As MarketDataType() = {}  'The returned array of market data
        Private Const BaseDate As DateTime = #1/1/1970#
        Private Const ColonCode = "&%^@"  'The substitute code for "\:"

        Sub New(ByVal MarketString As String)
            Dim n As Integer, Mdata, Field As String()

            Mdata = MarketString.Replace("\:", ColonCode).Split(":") 'Get array of Market substrings
            n = UBound(Mdata) - 1
            ReDim marketData(n)

            For i = 0 To n
                Field = Mdata(i + 1).Replace("\~", "-").Split("~") 'Get array of data fields
                marketData(i) = New MarketDataType
                With marketData(i)
                    .marketId = Field(0)   'Load the array items
                    .marketName = Field(1).Replace(ColonCode, ":")
                    .marketType = Field(2)
                    .marketStatus = Field(3)
                    .eventDate = BaseDate.AddMilliseconds(Field(4))
                    .menuPath = Field(5).Replace(ColonCode, ":")
                    .eventHeirachy = Field(6)
                    .betDelay = Field(7)
                    .exchangeId = Field(8)
                    .countryCode = Field(9)
                    .lastRefresh = BaseDate.AddMilliseconds(Field(10))
                    .noOfRunners = Field(11)
                    .noOfWinners = Field(12)
                    .totalAmountMatched = Val(Field(13))
                    .bspMarket = (Field(14) = "Y")
                    .turningInPlay = (Field(15) = "Y")
                    .marketDisplayTime = BaseDate.AddMilliseconds(Field(10))
                End With
            Next
        End Sub
    End Class
End Module