DESCARGA SERVICIO SANEAMIENTO BOVINO 2004
Requisitos básicos de funcionamiento:
  • Sistema operativo: Windows 98 o superior
  • Herramienta: Access 2002 (XP)
Se han de instalar:
Y hay que colocar el programa en sí con los datos en una carpeta C:\SANEAM:
DESCARGA SERVICIO ETIQUETADO
Requisitos básicos de funcionamiento:
  • Sistema operativo: Windows 98 o superior
  • Herramienta: Access 2002 (XP)
Se han de instalar:
Programa de muestra en Access 2002:
DESCRIPCION DEL SERVICIO PARA GANADEROS

El servicio está publicado en http://eriste.aragob.es/WebServiceGanaderos/ganaderos.asmx, Invocado desde el navegador devuelve una página de ayuda que detalla el servicio y sus métodos. Recuerde que desde ella podrá realizar pruebas sobre el funcionamiento de estos métodos y compararlos con los resultados de las invocaciones desde su aplicación local o web.

Ping:
Se trata de la transacción más simple, sirve para comprobar la conexión a nivel de aplicación entre el cliente y el servidor.
  • Parámetros ninguno.
  • El mensaje devuelto es PingResponse, además de la fecha/hora actual 28/03/2003 11:49:42
Autenticación:
Paso previo para la descarga de información desde cualquier otro método.
  • Parámetros USUARIO, PASSWORD.
  • El mensaje devuelto es TRUE O FALSE según el usuario exista y se valide correctamente.
Get_Animales_movimiento:
Descarga todos los animales que componen el movimiento, como requisito el usuario que se autentico debe tener privilegios sobre la explotación origen y/o destino que componen el movimiento pecuario.
  • Parámetro EXPLOTACION
  • El mensaje devuelto es un DATASET si trabaja con .Net (ADO .Net) podrá recogerlo directamente, recuerde que el método ReadXmlle permite leer el esquema y los datos XML de una única vez, sino deberá implantar su propio parser XML.
Get_Num_Animales_Exp:
Devuelve el NUMERO de Animales, con estado localizado, que residen en una explotación.
  • Parámetro explotación
  • El mensaje devuelto es el número de animales que están localizados en la explotación. Al igual que el método anterior devuelve un Dataset.
Get_Animales_Exp:
Descarga todos los animales además de sus datos básicos, que residen en la explotación.
  • Parámetro explotación
  • El mensaje devuelto es: si trabaja con .Net (DATASET), sino deberá implantar su propio método.



Pasos Previos.
Para poder realizar cualquier operación contra la BD oficial, previamente debe solicitarse una conexión que permitirá el acceso tanto al programa de gestión de zonas como al servicio web. A partir de dicha conexión podrá realizar tareas como la impresión de sus DIBS o libro de registro, ver datos on-line de movimientos procedentes de la CA o el MAPA.
 
Porque Servicios Web

Porque por definición un servicio es una aplicación modular y autodescriptiva que se puede ubicar y evocar desde cualquier punto gracias a protocolos como http o https.

Así pues, los servicios combinan las mejores prestaciones presentando una serie de módulos que pueden utilizarse independiente del sistema operativo y/o lenguaje de programación. Realmente los servicios hacen que la información esté disponible en cualquier momento y en cualquier lugar, utilizando para ello un lenguaje XML y un protocolo SOAP que describe el significado de los datos permitiendo que mantengan su integridad al ser transmitidos y manejados por múltiples sitios y usuarios.

El efecto que intentamos alcanzar es que el site eriste.aragob.es sea flexible, permitiendo que aplicaciones terceras de mataderos, ganaderos y saneamientos puedan interactuar, intercambiar y aprovechar sus datos de forma transparente.

 
Como Acometer Nuestros servicios.

Por supuesto SOAP no recae en un software de desarrollo específico, los distintos fabricantes han lanzado sus paquetes que incluyen asistentes, código de ejemplo y manuales para los desarrolladores. Como modelo, hemos utilizado la herramienta gratuita SOAP ToolKit de Microsoft http://msdn.microsoft.com/library/default.asp?url=/downloads/list/websrv.asp que contiene un asistente de generación de definiciones, documentación y ejemplos denominado Web Service References Tool que permite realizar búsquedas de descripción, descubrimiento e integración (UDDI, Universal Description Discovery and Integration) de aquellos servicios registrados o abrir directamente su archivo de descripción. (WSDL, Web Services Description Language).

Así pues, una vez instalada la herramienta SOAP ToolKit, para iniciar Web Service References Tool, haga clic en Web Service References del menú Herramientas en el Editor de Visual Basic de Access. Como hemos comentado anteriormente, la herramienta proporciona una interfaz que permite descubrir los servicios, seleccionar los deseados y crear clases que actúen como servidores proxy de en sus proyectos VBA (Visual Basic para Aplicaciones ) .





En nuestro caso invocaremos directamente la descripción del servicio (WSDL) seleccione la opción Dirección URL y escriba: http://eriste.aragob.es/WebServiceGanaderos/ganaderos.asmx?wsdl. A continuación presione el Botón Buscar(1), Deberá aparecer en la parte derecha de la pantalla el servicio y sus métodos(2). Si por ultimo optamos por la opción de Agregar( 3), se añadirá a nuestro proyecto la clase que hace referencia al servicio seleccionado.





Para utilizar los métodos de la clase de servidor proxy generada cree primero una instancia de dicha clase mediante la instrucción Set con la palabra clave New para asignar la clase a una variable. A continuación utilice la variable para ejecutar los métodos públicos de la clase, como vemos en el ejemplo de la función Ping_click:

Private Sub Ping_Click()
'Procedimiento para comprobar la conexión a la base de datos.

On Error GoTo Fallo_Ping:

Set claseWS = New clsws_Service1
claseWS.wsm_Ping
Comprobando = "La conexión es correcta." 'Inscripción que queda en pantalla.
MsgBox "Conexión correcta.", vbInformation

Exit Sub

Fallo_Ping: Comprobando = "No hay conexión." 'Inscripción que queda en pantalla.
    MsgBox "No hay conexión.", vbExclamation
End Sub

Si deseamos realizar la descarga de datos a la aplicación local, deberemos trabajar con el DOM (Document Object Model) implementado por Microsoft XML Parser. Este parser o analizador para XML es "el programa" que lee el documento XML y hace que los datos que contiene estén accesibles de forma ágil. El parser de Microsoft (msxml.dll), se distribuye a partir de la versión 5.5 de IExplorer permitiendo que los datos estén disponibles a través de una serie de objetos como el utilizado por nosotros MSXML2. En el ejemplo siguiente mostramos la descarga de los animales y la utilización de los mismos.

Private Sub Descargar_Click()
'Clic en un botón para descargar los animales en ANIMALES, con Usuario y Clave introducidos.
On Error GoTo Fallo_Descargar:

If Not IsNull(Usuario) And Not IsNull(Clave) Then
    Set claseWS = New clsws_Service1
    If claseWS.wsm_Autenticacion(Usuario, Clave) Then
    'Se vacía la tabla ANIMALES (Access): (tabla que ya existe, ANIMALES, con dos campos: EXPLOTACIÓN y ANIMAL)
      DoCmd.SetWarnings (False)
      DoCmd.RunSQL ("DELETE FROM ANIMALES")
      Dim cmd1 As Command
      Dim strSQL As String
      Dim DtsMataderos As clsws_Service1
      Dim oFullNodeList As MSXML2.IXMLDOMNodeList
      Dim oFilteredNodeList As MSXML2.IXMLDOMNodeList
      Dim oNode As MSXML2.IXMLDOMNode
      Dim oNode2 As MSXML2.IXMLDOMNode
      Dim iRow As Integer

      'Se recogen los animales de ANIMALES (Oracle):
      Set oFullNodeList = claseWS.wsm_GetAnimales(Explotación)
      Set oFilteredNodeList = oFullNodeList.Item(1).selectNodes("NewDataSet")

      Set xdd = New MSXML2.DOMDocument40

      With xdd
        .async = False
        .preserveWhiteSpace = True
        .LoadXml oFullNodeList.Item(1).xml
        Set xdlRows = xdd.selectNodes("//animales")
      End With

      lcntRows = xdlRows.length - 1

      For Each oNode In oFilteredNodeList
        For iRow = 0 To lcntRows
          Animal = oNode.childNodes.Item(iRow).selectSingleNode("AN_ID_ANI").Text

          'Se graba el animal:
          Set cmd1 = New ADODB.Command
          cmd1.ActiveConnection = CurrentProject.Connection
          strSQL = "INSERT INTO ANIMALES (EXPLOTACIÓN, ANIMAL) VALUES ('" & Explotacion & "', '" & Animal & "')"
          cmd1.CommandText = strSQL
          cmd1.CommandType = adCmdText
          cmd1.Execute
        Next
      Next

      DoCmd.OpenQuery "Incorporación de animales" 'Llamada a una consulta que pasa los animales de ANIMALES al destino final.
      DoCmd.SetWarnings (True)
      MsgBox "Operación completada.", vbInformation
    Else
      MsgBox "Error en el usuario o la clave.", vbExclamation
    End If
Else
    MsgBox "Indique usuario y clave.", vbExclamation
End If

Exit Sub

Fallo_Descargar:
    MsgBox "No hay conexión.", vbExclamation
Exit Sub

Otras funciones implementadas en el ejemplo.
Private Sub Contar_Click()
'Procedimiento par a recuperar la cantidad de animales de una Explotación, con Usuario y Clave introducidos.
On Error GoTo Fallo_Contar:

If Not IsNull(Usuario) And Not IsNull(Clave) Then
    Set claseWS = New clsws_Service1
    If claseWS.wsm_Autenticacion(Usuario, Clave) Then
      MsgBox "Cantidad de animales: " + claseWS.wsm_GetNumAnimalesExp(Explotación) + ".", vbInformation
    Else
      MsgBox "Error en el usuario o la clave.", vbExclamation
    End If
Else
    MsgBox "Indique usuario y clave", vbExclamation
End If

Exit Sub

Fallo_Contar:
    MsgBox "No hay conexión.", vbExclamation
End Sub
Private Sub Form_Load()
'Al abrirse el formulario se comprueba la conexión a la base de datos.
On Error GoTo Fallo_Load:

Set claseWS = New clsws_Service1
claseWS.wsm_Ping
Comprobando = "La conexión es correcta." 'Inscripción que queda en pantalla.

Exit Sub

Fallo_Load:

    Comprobando = "No hay conexión."
    MsgBox "No hay conexión.", vbExclamation
End Sub
Private Sub Verificar_Click()
'Procedimiento para verificar el Usuario y la Clave.
On Error GoTo Fallo_Verificar:

If Not IsNull(Usuario) And Not IsNull(Clave) Then
    Set claseWS = New clsws_Service1

    If claseWS.wsm_Autenticacion(Usuario, Clave) Then
      MsgBox "Usuario y clave válidos.", vbInformation
    Else
      MsgBox "Error en el usuario o la clave.", vbExclamation
    End If
Else
    MsgBox "Indique usuario y clave", vbExclamation
End If

Exit Sub

Fallo_Verificar:
    MsgBox "No hay conexión.", vbExclamation
End Sub