Cómo automatizar transferencias de archivos con TCP/IP desde AS/400
Automatice las transferencias de archivos entre la PC y el AS400 en forma batch
El intercambio de grandes cantidades de datos entre computadoras siempre ha sido uno de los principales requerimientos dentro de cualquier departamento de tecnología informática. Debido a la generalización del uso de TCP/IP, la aplicación FTP (File Transfer Protocol) se ha convertido en uno de los servicios más utilizados para enviar, recibir y compartir archivos a través de redes.
La aplicación FTP es una de las que integran la suite de aplicaciones TCP/IP, y por lo tanto, suele ser provista por el mismo proveedor del protocolo (ver notas finales). Consta de dos partes: el módulo cliente y el módulo servidor. Cada una de ellas tiene su propio conjunto de subcomandos. La acción se inicia a partir de subcomandos ingresados al cliente FTP, quien dispara los subcomandos necesarios del servidor FTP.
El cliente FTP contempla subcomandos para establecer una conexión con un servidor FTP remoto, navegar bibliotecas y directorios, crear y suprimir archivos, y por supuesto, transferirlos.
NOTA: Se considera cliente FTP al sistema que inicia la petición de transferencia independientemente de dónde residan los archivos a transferir y el sentido de la misma.
Los subcomandos del cliente FTP pueden ingresarse uno por vez, cada vez que se requiera una operación (Modo manual), o incluírse dentro de un script FTP que se ejecutará batch bajo una planificación previamente definida (Modo automático).
Si se utiliza la modalidad manual, el usuario debe realizar los siguientes pasos:
- Arrancar el cliente FTP, especificando la dirección IP del sistema remoto (o en su defecto el nombre del sistema).
- Ingresar un identificador de usuario y contraseña.
- Ejecutar la secuencia de subcomandos FTP necesarios (GET, PUT, etc.)
- Finalizar el cliente FTP.
Cuando es necesario ejecutar transferencias masivas periódicamente, el ingreso manual de subcomandos del cliente FTP puede tornarse una tarea tediosa. Por lo tanto, es importante considerar la automatización del proceso desde un trabajo batch. También es aplicable la ejecución automática cuando la transferencia se invoca, por ejemplo, desde otra aplicación.
En este tip, tratamos el caso de una transferencia iniciada por un cliente AS/400, desde o hacia otro sistema AS/400. Parte de lo aquí tratado es aplicable a la ejecución desatendida de transferencias, iniciadas por un AS/400 desde o hacia PC. En este caso, debe disponer de un FTP Server en la PC con la que se comunica.
Ejemplo de implementación de FTP batch – Modo automático
Para llevar a cabo el proceso de automatización de FTP asumimos, en este caso, que un AS/400 es el sistema que está solicitando la transferencia de archivos (es decir, toma el rol de cliente FTP) hacia otro AS/400 que tiene instalada la porción servidor. Además del/los archivos a transferir, deben intervenir en el proceso los siguientes elementos:
- Un archivo que contenga los subcomandos FTP (script)
- Un programa CL que iniciará el FTP y ejecutará los subcomandos del script.
- Un archivo vacío que almacenará los mensajes generados luego de la corrida del script.
1) Creación del Script de subcomandos FTP:
La siguiente pantalla muestra como sería el script FTP, con las características de la transferencia que se desea realizar. Este debe estar almacenado como miembro fuente de tipo TXT dentro de un objeto *FILE PF-SRC:
La sentencia 0001.00 debe contener el nombre del usuario y la contraseña del sistema remoto. Las sentencias que le siguen especifican los subcomandos FTP que bajan datos al cliente. Luego se finaliza la sesión FTP (subcomando quit).
2) Creación del Programa CL
Deberá generarse también el código CL necesario para el arranque del FTP y la ejecución del script:
La sentencia 0002.00 efectúa una alteración temporal del INPUT del FTP para que los subcomandos a ejecutar sean los del miembro FTPTXT mostrado en el paso anterior. En la sentencia que sigue, se redirecciona la salida de los mensajes del servidor FTP al miembro FTPLOG. Luego, el comando STRTCPFTP arranca el cliente FTP especificando la dirección IP del sistema remoto. Este mandato es el que, en definitiva da origen a la ejecución del script FTP. Luego se eliminan las alteraciones temporales y finaliza el programa.
3) Programación de la transferencia
Para que la ejecución del programa CL no dependa de una invocación manual, puede agregarse una entrada a la lista de trabajos planificados desde el comando WRKJOBSCDE, o dispararla desde otro proceso, etc.
4) Archivo con mensajes de ejecución del script
Luego de la ejecución del programa CL, FTPLOG contendrá lo siguiente:
Si el miembro FTPLOG no existe, es creado en forma automática; en caso contrario, el output generado por cada corrida del programa CL se agrega a continuación de las entradas producidas por la corrida previa. Es aconsejable eliminar este miembro luego de cada corrida.
Para tener en cuenta...
- El TCP/IP en AS/400 incluye tanto el módulo cliente como el servidor de FTP. En PC, no siempre se dispone del módulo servidor. Por ejemplo, CA/400 no ofrece FTP Server, pero sí lo ofrece Reflection, o Windows NT.
- Observar en el log generado luego de la corrida de un script, que si existiesen errores, el proceso no se detiene y aparecerán mensajes de error como consecuencia de errores anteriores (Ej: si el usuario o la contraseña son incorrectos, se mostrará un mensaje de error para esta sentencia y, en el ejemplo, para los “gets” que siguen hasta el quit que finaliza el script).
- FTP puede procesar datos almacenados en el IFS (Integrated File System).
- FTP puede utilizarse solamente para la transferencia de archivos físicos, lógicos o de salvar. Para transferir otro tipo de objetos, un programa por ejemplo, deberá salvarse previamente en un archivo de salvar y enviar este último vía FTP. En el sistema destino, deberá restaurarse el objeto salvado.
- Al menos que se esté usando FTP anónimo, un identificador de usuario y su password siempre son requeridos.
- Para implementar protecciones sobre las posibilidades del FTP, es posible agregar “exit programs” sobre los “exits points” provistos por OS/400.
Copyright Teknoda S.A.
IMPORTANTE: “Notas técnicas de AS/400 - IBM i" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes IBM i - AS/400. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. NS iTech - Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos. |