Elvira, te paso sentencias de un CL de muestra (este CL concretamente lo que hace es recibir parámetros origen y destino y enviar un fichero a un FTP Server) y un RPG que uso como estándar para montar ficheros de instrucciones FTP.
Creo y espero que ésto te servirá.

/*----------------------------------------------------------------------------*/
/* ENVIAR FICHEROS DESDE UN AS A OTRO AS VIA FTP */
/*----------------------------------------------------------------------------*/
PGM        PARM(&LIBORI &FILEORI &LIBDES &FILEDES)
/**/
DCL        VAR(&LIBORI) TYPE(*CHAR) LEN(10)
DCL        VAR(&FILEORI) TYPE(*CHAR) LEN(10)
DCL        VAR(&LIBDES) TYPE(*CHAR) LEN(10)
DCL        VAR(&FILEDES) TYPE(*CHAR) LEN(10)
/**/
DCL        VAR(&CMD01) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD02) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD03) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD04) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD05) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD06) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD07) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD08) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD09) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD09) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD10) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD11) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD12) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD13) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD14) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD15) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD16) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD17) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD18) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD19) TYPE(*CHAR) LEN(100)
DCL        VAR(&CMD20) TYPE(*CHAR) LEN(100)

/* HACER EL FTP */
DLTF      FILE(QTEMP/FTPOUT)
MONMSG     MSGID(CPF0000)
CRTPF      FILE(QTEMP/FTPOUT) RCDLEN(100)
MONMSG     MSGID(CPF0000)
CLRPFM     FILE(QTEMP/FTPOUT)
MONMSG     MSGID(CPF0000)
DLTF      FILE(QTEMP/FTP)
MONMSG     MSGID(CPF0000)
CRTPF      FILE(QTEMP/FTP) RCDLEN(100)
MONMSG     MSGID(CPF0000)
CLRPFM     FILE(QTEMP/FTP)
MONMSG     MSGID(CPF0000)
OVRDBF     FILE(FTP) TOFILE(QTEMP/FTP) SHARE(*YES)
CHGVAR     VAR(&CMD01) VALUE('user password')
CHGVAR     VAR(&CMD02) VALUE('LCD ' || &LIBORI)
CHGVAR     VAR(&CMD03) VALUE('SENDEPSV')
CHGVAR     VAR(&CMD04) VALUE('SENDEPRT')
CHGVAR     VAR(&CMD05) VALUE('LCD ' || &LIBDES)
CHGVAR     VAR(&CMD06) VALUE('PUT ' || &FILEORI || ' ' +
             || &FILEDES)
CHGVAR     VAR(&CMD07) VALUE('QUIT')
/* MONTARFTP REGISTRA EN QTEMP/INPUT LOS MANDATOS A UTILIZAR */
CALL       PGM(HMONTARFTP) PARM(&CMD01 &CMD02 &CMD03 +
             &CMD04 &CMD05 &CMD06 &CMD07 &CMD08 &CMD09 +
             &CMD10 &CMD11 &CMD12 &CMD13 &CMD14 &CMD15 +
             &CMD16 &CMD17 &CMD18 &CMD19 &CMD20)
*/
OVRDBF     FILE(INPUT) TOFILE(QTEMP/FTP)
OVRDBF     FILE(OUTPUT) TOFILE(QTEMP/FTPOUT)
FTP        RMTSYS('192.168.0.1')
OG FTP */
RUNQRY     QRYFILE((QTEMP/FTP)) OUTTYPE(*PRINTER)
RUNQRY     QRYFILE((QTEMP/FTPOUT)) OUTTYPE(*PRINTER)
/**/
             ENDPGM


Fuente RPG (HMONTARFTP):
H DEBUG DECEDIT('0,') DATEDIT(*DMY-) datfmt(*DMY-)
F*********************************************************************
F*  Montar archivo de instrucciones FTP.
F*********************************************************************
Fftp       o    f  100 disk
D x               s              3 0
 *
D DS
D cmd                     1   2000 inz
D DIM(20)
D  cmd01                  1 100
D  cmd02                101 200
D  cmd03                201 300
D  cmd04                301 400
D  cmd05                401 500
D  cmd06                501 600
D  cmd07                601 700
D  cmd08                701    800
D  cmd09                801    900
D  cmd10                901   1000
D  cmd11               1001   1100
D  cmd12               1101   1200
D  cmd13               1201   1300
D  cmd14               1301   1400
D  cmd15               1401   1500
D  cmd16               1501   1600
D  cmd17               1601   1700
D  cmd18               1701   1800
D  cmd19               1801   1900
D  cmd20               1901   2000
 *
C     *entry        plist
C                   parm                    c01             100
C                   parm                    c02             100
C                   parm                    c03             100
C                   parm                    c04             100
C                   parm                    c05             100
C                   parm                    c06             100
C                   parm                    c07             100
C                   parm                    c08             100
C                   parm                    c09             100
C                   parm                    c10             100
C                   parm                    c11             100
C                   parm                    c12             100
C                   parm                    c13             100
C                   parm                    c14             100
C                   parm                    c15             100
C                   parm                    c16             100
C                   parm                    c17             100
C                   parm                    c18             100
C                   parm                    c19             100
C                   parm                    c20             100
 * Montar serie
c                   eval      cmd01=c01
c                   eval      cmd02=c02
c                   eval      cmd03=c03
c                   eval      cmd04=c04
c                   eval      cmd05=c05
c                   eval      cmd06=c06
c                   eval      cmd07=c07
c                   eval      cmd08=c08
c                   eval      cmd09=c09
c                   eval      cmd10=c10
c                   eval      cmd11=c11
c                   eval      cmd12=c12
c                   eval      cmd13=c13
c                   eval      cmd14=c14
c                   eval      cmd15=c15
c                   eval      cmd16=c16
c                   eval      cmd17=c17
c                   eval      cmd18=c18
c                   eval      cmd19=c19
c                   eval      cmd20=c20
 * Montar fichero de instrucciones
C                   for       x=1 to 20
C                   if        cmd(x)<>*blanks
C                   except
C                   end
C                   endfor
 *
C                   eval      *inlr=*on
 *
OFTP       E
O                       cmd(x)             100

Saludos cordiales,
Carlos Bartolomé.
LIWE ESPAÑOLA, S.A.



El 23/09/2016 a las 11:30, Elvira Vázquez escribió:

Javier

Eso es lo que quiero hacer pero no se como

*De:*[email protected] [mailto:[email protected]] *En nombre de *Javier Mora
*Enviado el:* viernes, 23 de septiembre de 2016 11:27
*Para:* 'forum.help400'
*Asunto:* RE: duda

Yo utilizo unos mandatos “hechos en casa” como clientes FTP que dejan rastro en un log. En su día, busqué una fórmula para poder guardar la fecha y hora de cada registro, pero no pudo ser. Lo solucioné grabando por programa en el archivo de salida del log un primer registro con la fecha y hora del inicio de la sesión FTP.

Saludos,

Javier Mora

*De:*[email protected] <mailto:[email protected]> [mailto:[email protected]] *En nombre de *Elvira Vázquez
*Enviado el:* viernes, 23 de septiembre de 2016 9:23
*Para:* 'forum.help400'
*Asunto:* duda

Hola Foro

Tengo un CL que deja en un FTP externo un fichero todos los día.

Según mi LOG todo va bien pero alguna que otra vez después de varios días nos dicen que no lo recibieron o lo recibieron dañado.

Hay algun comando para poder comprobar que se ha recibido correctamente?

Otra cosa: hay forma de incluir en el log la fecha y la hora. En este momento lo se por los datos de modificación del fichero pero no los tengo internamente

Gracias como siempre a todos….

Elvira

        

Este mensaje puede contener información confidencial sujeta al secreto profesional, cuya divulgación no está permitida por la ley y está dirigida únicamente para el uso de la persona destinataria. Si usted no es la persona destinataria de este mensaje, por la presente se le comunica que no debe usar, difundir, copiar de ninguna forma, ni emprender ninguna acción en relación con ella. Si usted ha recibido este mensaje por error, le rogamos que lo elimine, al igual que cualquier copia del mismo, y que proceda a la eliminación de cualquier archivo adjunto al mismo, y nos notifique este hecho de manera inmediata mediante correo electrónico remitido a nuestra atención, o a través del teléfono (+34) 91 665 72 98. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley. Le informamos, como destinatario de este mensaje, que el correo electrónico y las comunicaciones por medio de Internet no permiten asegurar ni garantizar la confidencialidad de los mensajes transmitidos, así como tampoco su integridad o su correcta recepción, por lo que el emisor no asume responsabilidad alguna por tales circunstancias. Si no consintiese en la utilización del correo electrónico o de las comunicaciones vía Internet, le rogamos nos lo comunique y ponga en nuestro conocimiento de manera inmediata. This message may contain confidential and privileged information, protected from disclosure by law, and is intended only for the use of the addressee named above. If you are not the intended recipient of this message you are hereby informed that you must not use, disseminate, copy it in any form or take any action in reliance on it. If you have received this message in error please delete it and any attachments or copies of it and notify the sender by reply e-mail or by phone (+34) 91 665 72 98. In such case, you are hereby notified that any dissemination, distribution, copying or use of this message or any attachments, for any purpose, is strictly prohibited by law. We hereby inform you, as addressee of this message, that e-mail and Internet do not guarantee the confidentiality, nor the completeness or proper reception of the messages sent and, thus, the sender does not assume any liability for those circumstances. Should you not agree to the use of e-mail or to communications via Internet, you are kindly requested to notify us immediately.

*P*

        

Antes de imprimir este e-mail piense bien si es necesario hacerlo: El medioambiente es cosa de todos

Before printing this e-mail think well if you must: The environment is everyone's



____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a