WSANMAT ejemplo
Este ejemplo en visual basic 6 (ver otros lenguajes) usa la interfaz WSAFIPFE para conectar al web service de trazablidad de medicamentos de ANMAT en modo prueba para:
informar una transacción de 2 medicamentos.
cancelarla
obtener la lista de transacciones no confirmadas (en el que el usuario es el destino)
confirmar la primera de esas transacciones
El significado de cada método y propiedad y los códigos (de evento, etc) usados están explicados en la documentación de esta página.
El ejemplo requiere versión 23.40 o superior del instalador.
Los datos son operativos y provistos por PAMI o ANMAT.
En el proyecto en visual basic, agregar una referencia al objeto WSAFIPFE y ejecutar el código desde un botón.
Dim ws As WSAFIPFE.pami
Dim cIdTransaccion As String
Dim bResultado As Boolean
Dim nIndex As Integer
cIdTransaccion = ""
Set ws = New WSAFIPFE.pami
If ws.iniciar(0, "pruebasws", "pruebasws", "") Then
ws.ArchivoXMLEnviado = "c:\aenviado.xml"
ws.ArchivoXMLRecibido = "c:\arecibido.xml"
ws.aTransaccionItemCantidad = 2
ws.aIndiceItem = 0
ws.aapellido = ""
ws.acuitdestino = ""
ws.acuitorigen = ""
ws.adepto = ""
ws.adireccion = ""
ws.afevento = "16/07/2014"
ws.ahevento = "01:00"
ws.afechaNacimiento = ""
ws.aglndestino = "9999999999918"
ws.aglnorigen = "glnws"
ws.agtin = "00000000000178"
ws.aidevento = "133"
ws.aidobrasocial = ""
ws.alocalidad = ""
ws.alote = "1"
ws.andocumento = ""
ws.anfactura = "A000100001234"
ws.anpostal = ""
ws.anremito = "R000100001234"
ws.anombres = ""
ws.anroasociado = ""
ws.anumero = ""
ws.anumeroserial = "2398235"
ws.apiso = ""
ws.aprovincia = ""
ws.asexo = ""
ws.atelefono = ""
ws.atipodocumento = ""
ws.avencimiento = "02/05/2016"
ws.aIndiceItem = 1
ws.aapellido = ""
ws.acuitdestino = ""
ws.acuitorigen = ""
ws.adepto = ""
ws.adireccion = ""
ws.afevento = "16/07/2014"
ws.ahevento = "01:00"
ws.afechaNacimiento = ""
ws.aglndestino = "9999999999918"
ws.aglnorigen = "glnws"
ws.agtin = "00000000000178"
ws.aidevento = "133"
ws.aidobrasocial = ""
ws.alocalidad = ""
ws.alote = "1"
ws.andocumento = ""
ws.anfactura = "A000100001234"
ws.anpostal = ""
ws.anremito = "R000100001234"
ws.anombres = ""
ws.anroasociado = ""
ws.anumero = ""
ws.anumeroserial = "754754856"
ws.apiso = ""
ws.aprovincia = ""
ws.asexo = ""
ws.atelefono = ""
ws.atipodocumento = ""
ws.avencimiento = "02/05/2016"
bResultado = ws.aEnviarMedicamento()
MsgBox ("codigo transaccion: " + ws.aRespuestaCodigoTransaccion)
MsgBox ("mensaje error general: " + ws.UltimoMensajeError)
MsgBox ("resultado anmat: " + ws.aRespuestaResultadoS)
MsgBox ("codigo error anmat: " + ws.aErrorCodigo1)
MsgBox ("mensaje error anmat: " + ws.aErrorDescripcion1)
cIdTransaccion = ws.aRespuestaCodigoTransaccion
ws.ArchivoXMLEnviado = ""
ws.ArchivoXMLRecibido = "c:\acancelarrecibido.xml"
ws.aEnviarCancelacTransacc (cIdTransaccion)
MsgBox ("mensaje error general: " + ws.UltimoMensajeError)
MsgBox ("resultado transaccion cancelada anmat: " + ws.aRespuestaResultadoS)
MsgBox ("codigo error anmat: " + ws.aErrorCodigo1)
MsgBox ("mensaje error anmat: " + ws.aErrorDescripcion1)
ws.ArchivoXMLEnviado = ""
ws.ArchivoXMLRecibido = "c:\alistarecibido.xml"
ws.aTransaccionItemCantidad = 1
ws.aIndiceItem = 0
ws.aidglobal = "-1"
ws.aglnInformador = "9999999999918"
ws.aglnorigen = ""
ws.aglndestino = ""
ws.agtin = ""
ws.aidevento = "-1"
ws.afechaOpDesde = ""
ws.afechaOpHasta = ""
ws.afechaTDesde = ""
ws.afechatHasta = ""
ws.afechaVtoDesde = ""
ws.afechaVtoHasta = ""
ws.anremito = ""
ws.anfactura = ""
aidEstado = "-1"
bResultado = ws.agetTransaccionesNoConfirmadas()
MsgBox ("mensaje error general: " + ws.UltimoMensajeError)
MsgBox ("resultado lista transacciones anmat: " + ws.aRespuestaResultadoS)
MsgBox ("codigo error anmat: " + ws.aErrorCodigo1)
MsgBox ("mensaje error anmat: " + ws.aErrorDescripcion1)
MsgBox ("transacciones devueltas: " + Str(ws.aTransaccionItemCantidad))
cIdTransaccion = ""
For nIndex = 1 To ws.aTransaccionItemCantidad
ws.aIndiceItem = nIndex - 1
MsgBox (Str(nIndex) + " id: " + ws.aIdTransaccion + " nombre:" + ws.anombre + " GTIN:" + ws.agtin + Chr(10) + Chr(13) + " evento: " + ws.aDevento)
Next
If ws.aTransaccionItemCantidad > 0 Then
ws.aIndiceItem = 0
cIdTransaccion = ws.aIdTransaccion
ws.ArchivoXMLEnviado = "c:\aconfirmarenviado.xml"
ws.ArchivoXMLRecibido = "c:\aconfirmarrecibido.xml"
ws.aTransaccionItemCantidad = 1
ws.aIndiceItem = 0
ws.afOperacion = "19/07/2014"
ws.apIdsTransacNo = False
ws.apIdsTransac = cIdTransaccion
bResultado = ws.aEnviarConfirmaTransacc()
MsgBox ("mensaje error general: " + ws.UltimoMensajeError)
MsgBox ("resultado confirmar transaccion anmat: " + ws.aRespuestaResultadoS)
MsgBox ("codigo error anmat: " + ws.aErrorCodigo1)
MsgBox ("mensaje error anmat: " + ws.aErrorDescripcion1)
MsgBox ("id transaccion: " + ws.aRespuestaCodigoTransaccion)
MsgBox ("id asociado: " + ws.aRespuestaaIdTransacAsociada)
Else
MsgBox ("No hay transacciones pendientes a confirmar")
End If
Else
MsgBox ("error inicio " + ws.UltimoMensajeError)
End If