lunes, 18 de septiembre de 2017

Utilidades Rexx IV: listar miembros

Aquí os dejo un programilla rexx que lista los componentes/miembros de una librería que le indiquemos:

/* REXX*/                                               
ADDRESS "ISPEXEC"                                       
"LMINIT DATAID(LMID) DATASET('"libreria.componentes.alistar"')"
"LMOPEN DATAID("LMID")"                                 
DO FOREVER = 1                                          
    "LMMLIST DATAID("LMID") MEMBER(LMMEM) STATS(YES)"   
    IF RC > 0 THEN LEAVE                                
    SAY 'MEMBER NAME:' LMMEM                            
    SAY 'TSO UID    :' ZLUSER                           
    SAY 'CREATE DATE:' ZLCDATE                          
END                                                     
"LMFREE DATAID("LMID")"   
                           

Donde:
LMMEM es el nombre del componente/miembro de la librería.
ZLUSER es el usuario que lo creó.
ZLCDATE es la fecha de creación del componente.

Para ejecutar nuestro código rexx hemos hecho este job:

lunes, 17 de julio de 2017

FTP desde JCL

Muchas veces nos preguntamos cómo se crea un FTP desde cero, sin embargo no existe un manual o un estándar, que nos indique, como debe de ser generado.
Como estamos en el camino, los ayudaré dando la pauta con lo básico para que lo puedas crear. Antes de nada podemos decir de los FTP’S:
  •  File Transfer Protocol, es un protocolo con una arquitectura cliente – servidor que te permite transferir archivos entre tu servidor local y un servidor FTP.
  •  Debes de identificar que el FTP que quieras generar es cliente. (Si es así es porque tu deseas transferir archivos a un alojamiento, o a un directorio).
  • Que existen varias maneras de transferir ficheros desde el host por FTP, pero que aquí veremos el caso del PGM=FTP en un proceso batch (job) al que le pasaremos parámetros utilizando el PARM.
  •  Podemos utilizar el nombre del servidor o su dirección IP utilizando el puerto 21.

//FTPSON   JOB,'FTP CONSULTORIO',
//             CLASS=P,MSGCLASS=S,REGION=0M
//*
//PASO01   EXEC PGM=FTP,REGION=2048K,
//         COND=(4,LT),
//          PARM='(EXIT=08 TIMEOUT 20'
//SYSMDUMP   DD SYSOUT=*
//SYSPRINT   DD SYSOUT=*
//OUTPUT     DD SYSOUT=*
//INPUT      DD *
nombre.servidor ó DIRECCIÓN IP
Usuario Contraseña
CD /Directorio/destino
PUT 'FICHERO.DEL.HOST' fichero.txt
QUIT

jueves, 13 de julio de 2017

Curso completo COBOL

Hola a todos.

Desde hace unos días veréis un enlace a un curso de cobol en la parte derecha del blog.

Este curso es externo al Consultorio Cobol, pero su creador, Fernando Toledo, nos ha pedido publicitarse con nosotros y le hemos hecho un hueco a cambio de una contribución al hosting del blog :-)

Para información sobre el curso debéis dirigiros a la web de Udemy donde está alojado.

Nosotros seguimos trabajando... 👍

lunes, 12 de junio de 2017

Alocar ficheros dinámicamente con BPXWDYN

Hoy os traigo un ejemplo de cómo generar dinámicamente ficheros de salida a través de un programa cobol.
El BPXWDYN es una rutina del sistema, capaz de alocar/liberar/concatenar ficheros en una ejecución batch.

En este ejemplo, el programa lee de un fichero de entrada con N registros, y genera N ficheros de salida.
Para la nomenclatura, hemos utilizado un contador en uno de los delimitadores.

La utilidad? Imagina que tienes un fichero de entrada con 1 millón de registros, y tienes que generar un fichero de salida por cada uno de ellos (osea, 1 millón de ficheros). Vas a picarte el nombre de los ficheros a mano en el JCL? Además de que puede que no sepas el número exacto de registros que va a tener ese fichero, pues varíe cada día.
En fin, por si algún día os veis en la situación, aquí lo tenéis :-)

JCL:
//PASO01 EXEC PGM=PRUEBDYN
//ENTRADA   DD DSN=FICHERO.DE.ENTRADA,DISP=SHR
//SYSOUT   DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*

donde EXEC PGM= indica el programa SIN DB2 que vamos a ejecutar
SYSOUT DD SYSOUT=* indica que la información "displayada" se quedará en la cola del SYSOUT (no lo vamos a guardar en un fichero)
Para definir el fichero de entrada "ENTRADA" indicaremos que es un fichero ya existente y compartida al indicar DISP=SHR.

Fichero de entrada:
----+----1----+
REGISTRO1
REGISTRO2
REGISTRO3
REGISTRO4

lunes, 5 de junio de 2017

Teclado en Personal Communications

Una de las cosas que siempre nos toca hacer al cambiar de cliente, o de ordenador, es configurar el teclado de la pantalla negra :-)

Normalmente con guardarte el fichero .kmp que ya estás usando, y copiarlo en la carpeta correspondiente en tu nuevo ordenador, no tendrías que hacer más. Pero por si alguno tiene que hacerlo de cero, aquí os contamos algunas teclas básicas que solemos configurar.

Por supuesto esto va al gusto, cada uno puede configurar su teclado como quiera!

Acceso a la configuración del teclado
Para poder modificar la configuración del teclado del personal communications, debemos pulsar en el botón con el dibujo de un teclado:


Esto nos abrirá una ventana con un teclado para ir configurando cada una de las teclas: