Hunter FTP Client (utilizando Access, Excel y VBA)

lunes, 30 de enero de 2012 18:34:00
Valorar Este Contenido 3 Votos.

Cuando necesitamos acceder a un determinado servidor de FTP y descargar o enviar uno o más archivos, la mejor opción es utilizar los programas FTP estándar, como por ejemplo lo que recomendamos Filezilla.

Sin embargo, cuando esta tarea se convierte en repetitiva, como cuando tenemos que Descargar diariamente varios archivos (vía ftp) OSS, viene la necesidad de automatizar la tarea – perdido menos tiempo, minimizando los errores, etc..

 

 

Y es una manera de automatizar la implementación FTP en Windows crear una aplicación que realiza este trabajo.

¿Hoy vamos a ver entonces cómo puede esto hacerse?

Nota: Todas las telecomHall artículos están escritos originalmente en Portugués. A continuación se hacen traducciones en Inglés y Español. Como nuestro tiempo es escaso, sólo se producen varios errores de ortografía (que utilizar el traductor automático, y sólo entonces hacer una revisión final). Pedimos disculpas, y contamos con su comprensión de nuestro esfuerzo. Si usted quiere contribuir traduciendo / corregir una de estas lenguas, o incluso uno nuevo, por favor comuníquese con nosotros: contacto.

 

Objetivo

Crear a un cliente FTP básico, que permite automatizar las tareas de búsqueda de archivos que se encuentran en un servidor FTP.

En el caso de hoy, usaremos Microsoft Access con VBA (aunque el mismo se puede hacer con otros programas, como Microsoft Excel).

Ya estamos acostumbrados a usar acceso en Hunter, y este cliente FTP es sólo otro módulo de la misma, como siempre, adaptar o utilizando la estructura de archivos (y directorios) que ya existe.

 

Estructura de archivos

En el tutorial de hoy, se incluyeron más entonces algunos archivos y directorios a nuestra estructura estándar.

 

El procedimiento para obtener esta estructura desde el archivo recibido es el mismo, así que no hay necesidad de explicar una vez más.

 

Cómo hacer un FTP en Windows

Hay varias formas de realizar el Protocolo de transferencia de archivos (FTP), y Windows, la más básica es a través de la línea de comandos ("cmd").

Sólo tienes que introducir el comando "ftp" seguido del nombre del servidor, y ya ves el mensaje preguntando al usuario para continuar.

 

Esta forma básica pero se vuelve bastante interesante, ya que podemos utilizar los archivos de tipo "BAT" para realizar la misma acción – en este caso, la secuencia de comandos que nos entraría.

Un archivo "BAT" es nada más que un archivo de texto, excepto que en lugar de extensión "TXT" tiene extensión "BAT". Estos archivos son reconocidos por el sistema como archivos por lotes y cuando se abre, desencadenar las acciones necesarias: ejecutando los comandos de la misma.

Esta es una característica muy utilizado por ejemplo en el "Drive Test", donde puede crear archivos para realizar Descargar y cargar automáticamente, mientras preocupaciones sólo en reunir y analizar los datos.

Después de inicio de sesión (usuario y contraseña), tenemos acceso a un indicador FTP. Nota: también existe el acceso anónimo, pero no es nuestro caso, porque siempre habrá (o al menos deberían ser) servidores protegidos con usuario y contraseña. De todos modos, para acceder en modo anónimo: cuando está permitido – sólo introducir usuario "Anónimo".

Aquí podemos utilizar una serie de comandos para realizar nuestras propias acciones (tales como la obtención de un archivo).

Háganos saber por lo menos los comandos FTP básicos para la aplicación de hoy.

 

Lista de comandos FTP

Hay más de 40 tipos de comandos FTP, y lo mismo puede acceder fácilmente a través de una búsqueda en Internet, como por ejemplo en el siguiente sitio Web:

http://www.nsftools.com/tips/MSFTP.htm

Una nota importante es que estamos hablando aquí de comandos para utilizarse en la línea de comandos de Windows. Hay otra relación de comandos FTP "Raw", que pueden encontrarse en la misma forma, pero huir a nuestro alcance aquí hoy.

Continuando, a continuación, sigue una breve descripción de los comandos utilizados:

  • "binario" (o "bin"): utilizar las transferencias de modo binario (explicación más abajo).
  • "hash" (o "ha"): le permite supervisar visualmente la evolución de la transferencia, imprimir el signo "#" para cada bloque transferido.
  • "get": para buscar un archivo en particular (Descargar).
    • el comando "mget" hace lo mismo para varios archivos.
  • "put": para enviar un archivo (Upload).
    • el comando "mput" hace lo mismo para varios archivos.
  • "bye": para cerrar la conexión FTP.

Vale la pena una nota sobre el uso del comando "bin" antes de efectuar las transferencias. La otra opción, o es el modo de transferencia ASCII ("comando" ascii), que también es el modo predeterminado. El modo ASCII es excelente para la transferencia de archivos en formato de texto y sólo. En modo ASCII, contamos con la compresión de archivos, que hace transferencias más rápidas. Pero cuando tenemos otros tipos de archivos como imágenes, vídeo o documentos de Word por ejemplo, el modo de transferencia que se utilizará es la transferencia de archivos binarios debido a la forma en que están, sin cambios.

Cada comando tiene su propia sintaxis. Por ejemplo, el comando "get" tiene la sintaxis:

obtener archivo remoto [archivo local]

En este caso, "remote-file" especifica el nombre del archivo para recuperarse. Si ha especificado, el parámetro opcional "local-file" especifica el nombre que este archivo debe tener cuando descargado. Otro tipo no especificado, el archivo tendrá el mismo nombre que el mando a distancia.

Para obtener más detalles acerca de estos y otros comandos, utilice la referencia como el enlace sugerido arriba.

 

Realizar un FTP

Una vez conocidos los comandos- y cómo hacerlo a través de la línea de comandos, podemos hacer una transferencia manualmente:

  • Creación de un archivo de texto con las siguientes líneas como se escribiría manualmente (un comando por línea);
  • Cambiar el nombre de este archivo con extensión "BAT";
  • Y ejecuta este archivo (doble clic por ejemplo).

 

La aplicación

¿Ahora resulta bastante sencillo comprender cómo nuestra aplicación puede crearse no es cierto?

Muy simplemente, sigue los mismos pasos anteriormente, excepto en lugar de hacer todo de forma manual, utilizar las capacidades de Access o Excel con VBA.

Manipular los archivos mediante programación puede crear bucles de diferentes servidores, archivos diferentes y todo lo que queremos.

Como ejemplo, tenemos una aplicación para descargar los parámetros datos de GSM y UMTS, de OSS para posterior tratamiento a través del módulo parámetros esquema ya visto "Hunter" (un módulo donde le mostramos cómo extraer los datos de estos archivos descargados y construir en una base de datos).

 

La aplicación es bastante simple, pero puede ser fácilmente mejorada – evolución – para lograr los mismos resultados como los programas FTP mejor existentes.

De todos modos, las alternativas de hoy en el encuentro.

Básicamente, sólo editar un archivo de Excel con información de conexión (servidor, usuario, etc....). Para editar este archivo, simplemente haga clic en el botón correspondiente de la interfaz principal.

 

A continuación, haga clic en el botón de signo de exclamación, para procesar las entradas FTP.

También puede procesar filas específicas (entradas) mediante el uso de algún tipo de filtro.

En nuestro caso, utilizamos una consulta: "qry_FTPConnections". Se trata de una simple consulta, buscando los datos de la tabla "tbl_Config_FTP": de hecho, nuestra hoja de cálculo de Excel vinculado, y ya hemos visto varias veces cómo hacerlo.

 

La macro (VBA) procesa los registros de esta consulta, que a su vez muestra que sólo los registros de la original del archivo cuyo campo "FTPCommand" es no vacío. En resumen, si se deja en blanco este campo, no se procesará la entrada respectiva de FTP!

Para que pueda mantener una lista de todas sus conexiones posibles, como la OSS s. Y al girar, realice las modificaciones deseadas.

 

Registros (log) de Hunter

Para mejorar un poco más de experiencia, hemos incluido una nueva característica: un archivo de registro. Hemos introducido más un concepto que puede replicarse en cualquier otro módulo que utilizar o desarrollar.

La medida que ejecutamos, estamos escribiendo los resultados (éxito, fracaso, entre otra información) en un archivo de texto simple, vemos al final de la ejecución.

En esta aplicación, tenemos un archivo de registro generado por cada vez que es redonda, que contiene toda la información de todas las transacciones, que es más conveniente.

Otra posibilidad, que vamos a ver pronto, es el uso del archivo de registro único, donde la información se acumula solo al final del año.

 

Código VBA: soluciones utilizadas

El código necesario, poco más de 50 líneas, fue escrito de forma muy sencilla, comentó plenamente y utilizando los procedimientos más adecuados para el manejo de archivos, y poco trucos para sortear algunos problemas potenciales.

Uno de estos problemas se produce cuando la manipulación de archivos, tenemos que crear y eliminar archivos temporales. Procesamiento es muy rápido, y puede ser que el sistema no tiene tiempo para que el archivo esté disponible, el bloqueo de la misma. En este caso, si el archivo se elimina no está disponible, tendremos el error 70: "permiso denegado".

Para resolver este problema por ejemplo, no elimine los archivos temporales, pero almacenan en un directorio separado: "Transacciones". De alguna manera esto termina siendo bueno, porque puede mirar cada uno de estos archivos, en caso de cualquier problema.

En esas aplicaciones, es común para las personas a usar el mismo nombre y una cierta cantidad de tiempo, hasta que los mismos estén disponibles – lanzado – el sistema para el manejo de la "espera". En nuestro caso, en cada transacción, hemos añadido un sufijo con la fecha y hora en que fue procesado. Así, encontrar una solución a este tipo de error. Además, cuando no usamos saltos fijos: perdemos tiempo, es decir, convertirse en una aplicación más rápida.

En resumen: para cada transacción, tenemos archivos con una determinada fecha y hora. Mientras que se están procesando: realizar la transacción FTP: podemos crear otro (que tendrá otra fecha y la hora!) y seguir procesando a otras transacciones.

Aunque parezca complicado, la solución es bastante simple. Y si lo desea, puede eliminar manualmente los archivos en las directorio "transacciones" o a través de un botón en la interfaz principal.

 

Conclusión

Una vez más, hemos visto cómo utilizar la metodología Hunter para obtener ayuda en nuestra labor.

Hoy por ejemplo, vimos cómo crear una aplicación "cliente de FTP" utilizando Excel, Access y VBA.

Y como las ventajas de una aplicación personalizada como este, podemos destacar la posibilidad de automatizar las tareas repetitivas y por lo tanto innecesario, o al menos probable que mejorarse.

También es posible, tan extraordinariamente simple, extender la aplicación para satisfacer otros fines específicos, siguiendo la misma idea de los puntos principales discutió y se muestra en el código VBA, comentó.

¿Por hoy y si por casualidad que has encontrado interesante, compartan? A continuación tienes formas fáciles y rápidas de hacerlo. Y una vez más, muchas gracias por su atención.