Skip to Content

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

To report this post you need to login first.

2 Comments

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

  1. Jesus Perez

    Hola, soy nuevo en esto de SAP, me podrías ayudar con las variables que estas utilizando por favor.

    Te lo agradecería muchísimo

    Saludos

    (0) 

Leave a Reply