Skip to Content

Obtener el tipo de cambio del servicio web (webservice) de banxico

Escribo este documento con la finalidad de apoyar el tema de SDK en español para SAP Business One, con un tema que nos es de mucha utilidad en esta ocasión para la gente de México

Y es, compartiendo el código de como consultar el tipo de cambio del dolar americano vigente del día, de la pagina de banxico.org.mx e importarlo a la tabla Tipos de Cambios

El add-on lo desarrolle en Visual Studio 2012 en vb.net

Basándome en los ejemplos de SDK en el apartado de UI (por ejemplo el de catching events) , despues del SetApplication() agregue la siguiente función, para que al iniciar el add-on se actualizara el tipo de cambio

    Public Sub ActualizarTC()

        Try

            Dim dbTC As Double

            Dim lErrCode As Integer

            Dim lRetCode, sErrMsg As String

            Dim httpBanxico As HttpWebRequest = CType(WebRequest.Create(“http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL“), HttpWebRequest)

            WebRequest.DefaultWebProxy = httpBanxico.Proxy

            Dim TipoCambio As New Banxico.DgieWSPortClient

            Dim strTipoCambio As String

            strTipoCambio = TipoCambio.tiposDeCambioBanxico

            Dim doc As XElement = XElement.Parse(strTipoCambio)

            Dim queryTC As IEnumerable(Of XElement) = From d In doc.<bm:DataSet>.<bm:Series> Where d.@IDSERIE = “SF60653”

            Select d

            For Each d As XElement In queryTC

                dbTC = d.<bm:Obs>.@OBS_VALUE

            Next

            oSBObob = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge)

            oSBObob.SetCurrencyRate(“USD”, Today, dbTC, False)

            oCompany.GetLastError(lErrCode, sErrMsg)

            If lErrCode <> 0 Then

                SBO_Application.SetStatusBarMessage(sErrMsg, SAPbouiCOM.BoMessageTime.bmt_Short, True)

            End If

            SBO_Application.SetStatusBarMessage(“Tipo de cambio actualizado: ” & dbTC.ToString, SAPbouiCOM.BoMessageTime.bmt_Long, False)

           

        Catch ex As Exception

            SBO_Application.SetStatusBarMessage(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Long, False)

        End Try

End Sub

Requisitos:

  • Crear el add-on con .Net Framework 4.5 y por consecuencia tener instalado 4.5 en los equipos que lo ejecutarían
  • Agregar las referencias:
  1. System.XML
  2. System.XML.linq
  3. System.ServiceModel
  • Agregar en VS la referencia de servicio de la siguiente dirección:  http://www.banxico.org.mx/DgieWSWeb/DgieWS?WSDL
  • Ya al instalar, hay que colocar dentro de la carpeta de instalación: el archivo   [NOMBREDELADD_ON].exe.config,
  • Importar :

Imports System.Net

Imports System.IO

Imports TipodeCambio.Banxico

Imports <xmlns:bm=’http://www.banxico.org.mx/structure/key_families/dgie/sie/series/compact‘>

Espero les sea de utilidad

Cualquier duda a sus ordenes

2 Comments
You must be Logged on to comment or reply to a post.