jueves, 31 de marzo de 2011

Pasar objetos entre un AS400 y otro por FTP (SAVF – SAVOBJ - RSTOBJ)

Pasar fuentes por FTP desde un AS400 a otro es simple, solo es direccionar las librerías (LCD – CD) y utilizar el comando get.
GET  MILIBRERIA.LIB/QRPGLESRC.FILE/MIFUENTES.MBR   (REPLACE
Si queremos pasar objetos, ya sea de tipo *PGM, *FILE, *DTAARA, etc. es algo menos fácil. No podemos hacerlo directamente. Para ello necesitaremos grabar los objetos (SAVOBJ) en un archivo de salvar (SAVF)  o si eres operador de sistemas lo haces grabando en una cinta u medio óptico.

Un archivo de salvar debe limpiarse para poder utilizarlo de nuevo para recibir datos procedentes de un mandato de salvar o para recibir otro archivo de salvar. Si el usuario intenta grabar datos de salvar nuevos en un archivo de salvar que ya contiene registros, se envía un mensaje de consulta a la estación de trabajo en el caso de un trabajo interactivo, o al operador del sistema en el caso de un trabajo por lotes, a menos que se utilice un mandato de salvar y se especifique CLEAR(*ALL). O previamente se limpie el archivo de salvar con el comando CLRSAVF.


Basta de teoría, vayamos a la práctica, que es donde se aprende mejor.


Ejemplo:
Voy a pasar el objeto MIPROGRAMA (*PGM) desde mi MILIBRERIA de MIAS400 a OTROAS400 en la librería OTRALIB con el mismo nombre.

MIAS400
OTROAS400
OBJETO ORIGEN
LIBRERIA ORIGEN
OBJETO DESTINO
LIBRERIA DESTINO
MIPROGRAMA
MILIBRERIA
MIPROGRAMA
OTRALIB


1.- Crear en ambos sistemas (si no existen) los objetos de salvar, de preferencia del mismo nombre (SAVF = SAVE FILE)

     CRTSAVF FILE(MILIBRERIA/OBJETOS)
     CRTSAVF FILE(OTRALIB/OBJETOS) 

2.- Salvamos los objetos en el archivo de salvar desde el AS400 Origen


SAVOBJ OBJ(MIPROGRAMA) LIB(MILIBRERIA) DEV(*SAVF) SAVF(MILIBRERIA/OBJETOS)

CLEAR(*ALL)   


Nota: Se pueden salvar los objetos que desees, si se quiere salvar una librería completa usar el comando SAVLIB.

3.- Si tenemos los servicios TCP/FTP en funcionamiento y las autorizaciones necesarios abrimos una sesión interactiva del FTP y enviamos el archivo de salvar (*SAVF) desde un Iseries al otro.


Podemos hacerlo de esta dos maneras diferentes:
A.- DESDE EL ORIGEN (MIAS400)
            FTP  OTROAS400
            USUARIO
            PASSWORD
            CD OTRALIB
            LCD MILIBRERIA
            BIN
            PUT OBJETOS OBJETOS
            QUIT

B.- DESDE EL DESTINO (OTROAS400)

            FTP  MIAS400
            USUARIO
            PASSWORD
            CD LIBRERIA
            LCD OTRALIB
            BIN
            GET OBJETOS OBJETOS (REPLACE
            QUIT
Nota: Para ambos casos se debe incluir el comando BINARY (bin) para establecer el tipo de transferencia Binaria. 


No está demás verificar el Formato de Denominación de Archivos del servicio FTP.
GET  MILIBRERIA.LIB/QRPGLESRC.FILE/MIFUENTES.MBR   (REPLACE
ó
GET MILIBRERIA/QRPGLESRC.MIFUENTE (REPLACE 

4.- Desde el sistema destino realizar la restauración del objeto. Es decir, sacar el objeto del archivo de salvar (SAVF) a la librería que deseemos. Si el archivo de salvar fuera visto como un archivo .ZIP, restaurar sería algo como descomprimir el objeto.


RSTOBJ OBJ(MIPROGRAMA) SAVLIB(MILIBRERIA) DEV(*SAVF) SAVF(OTRALIB/OBJETOS) RSTLIB(OTRALIB)


Nota: Si se salvo una librería completa al archivo de salvar SAVF se debe usar el comando RSTLIB. El parámetro SAVLIB es la librería desde donde se salvo el objeto al archivo de salvar (Librería Origen). El parámetro RSTLIB indica la librería donde se restaurará el objeto (Librería Destino).

9 comentarios:

  1. Hola compañero yo quiero hacer todo esto desde un programa CL como seria?

    ResponderEliminar
  2. Hola, este proceso aplica para otro AS400 que este a distancia ? Yo tengo un AS400 local y otro remoto pero cuando hago el FTP me dice: " Conectando con el sistema principal remoto 192.168.67.245 utilizando el
    puerto 21.
    No se puede establecer conexión con el sistema principal 192.168.67.245 en la dirección 192.168.67.245. Vuelva a intentarlo más tarde." ME falta algo ?

    ResponderEliminar
  3. Hola, este proceso aplica para otro AS400 que este a distancia ? Yo tengo un AS400 local y otro remoto pero cuando hago el FTP me dice: " Conectando con el sistema principal remoto 192.168.67.245 utilizando el
    puerto 21.
    No se puede establecer conexión con el sistema principal 192.168.67.245 en la dirección 192.168.67.245. Vuelva a intentarlo más tarde." ME falta algo ?

    ResponderEliminar
    Respuestas
    1. Hola Alfonso, si tienes accesos entre ambos as/400 no deberias tener problemas. Lo mas probable es que sea problema de conexión. Haz un ping desde un as400 al otro
      PING RMTSYS('xxx.xxx.xxx.xxx')

      te debe responder correctamente. Yo hago eso desde mi PC a un as400 que esta en alemania y si me funciona la conectividad. Saludos

      Eliminar
  4. Hola, al momento de realizar el paso 4 me arroja el siguiente mensaje "No puede restaurarse, visualizarse, o listarse el archivo." ¿Alguna idea de que podrá ser?

    ResponderEliminar