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(“https://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.
Select d
For Each d As XElement In queryTC
dbTC = d.
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:
- System.XML
- System.XML.linq
- System.ServiceModel
- Agregar en VS la referencia de servicio de la siguiente dirección: https://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
Espero les sea de utilidad
Cualquier duda a sus ordenes
New NetWeaver Information at SAP.com
Very Helpfull