Foro de Cobol
Registrate en el Foro de Cobol y Aporta tus experiencias y conocimientos sobre este lenguaje de programacion, con tu ayuda el foro crecera y todos nos podremos beneficiar de los conocimientos de los demas.

Gracias por entrar a COBOLEROS.ES
Síguenos en Twitter

Programa DLI TEST

Ver el tema anterior Ver el tema siguiente Ir abajo

Programa DLI TEST

Mensaje por Coboler@ el Jue Feb 03, 2011 1:00 am


PROGRAMA DLI TEST

1.- INTRODUCCION

El mantenimiento de las bases de datos supone esporádicamente el proceso de determinados segmentos o grupos de ellos para el borrado, inserción o modificación de datos erróneamente cargados.

Esto podría suponer la codificación, puesta a punto y ejecución de programa de aplicación destinados a realizar en la base ese acceso o proceso esporádico, programas cuyo mantenimiento, una vez ejecutados no tendría sentido.

Para evitar el costo y el tiempo necesarios destinados a estos programas, el DLI del IMS provee un programa de mantenimiento generalizado cuyo nombre es “DFSDDLTO” y está cargado en la librería IMSBS.RESLIB.

Tal programa es lo que a continuación detallamos. En su ejecución leerá de un fichero con nombre SYSIN una secuencia de registros de 80 octetos donde el usuario le indicará las CALL’S a efectuar y resto de la información que el programa necesite para cada una de ellas.


2.- FICHAS DE CONTROL

El JCL necesario para la ejecución de nuestro programa es:

a) Ficha JOB

b) Ficha EXEC

PGM=DFSRRC00
PARM=’DLI.DFSDDLT0.nombre-psb’

El usuario deberá proporcionar una PSB, con una PCB en la que se sensibilice la base deseada con las opciones de proceso necesarias.

c) Ficha DD . . . STEPLIB
Referenciará la librería IMSVS.RESLIB

d) Ficha DD . . . IMS
Concatenará las librerías IMSBS.PSBLIB y IMSVS.DBDLIB en ese orden

e) Ficha DD . . . base de datos
Referenciará los ficheros soporte de la base a tratar

f) Ficha DD . . . IEFRDER
Referenciará el fichero LOG del IMS
Si no se usa se referenciará como DUMMY

g) Ficha DD . . . PRINTDD
Referenciará el fichero de salida del programa
Normalmente será un fichero de impresora, SUSOUT=A

h) Ficha DD . . . SYSUDUMP
Referencia el fichero para contener el volcado de la región en caso de terminación anormal por ABEND. Es opcional, su existencia omite tal volcado.

i) Ficha DD . . . SYSIN
Referenciará el fichero con la información de usuario al programa. Normalmente se trata de un fichero en fichas (DD*)

j) Ficha DD . . . SYSIN2
Referenciará un fichero opcional secundario que completa al anterior, que podría ser standard.

El programa alternará la lectura de ambos siguiendo una secuencia dada por las últimas posiciones de los registros situados en los dos ficheros.


3.- FICHA DE ESTADO

Posición Contenido

1 S

2 Opción de impresión de comentarios condicionales

5 Opción de impresión de las CALL

7 Opción de impresión de la ficha de comparación

9 Opción de impresión de la PCB

11 Opción de impresión del segmento

16-23 Nombre de la DBD

19-23 Posición relativa de la PCB a usar en la PSB suministrada

24 Opción de impresión de esta ficha de estado

25-28 Opción de proceso de la PCB, si es que hay más de una PCB sobre la DBD especificada y pueden distinguirse por este concepto.


El resto de las columnas se dejarán a blancos.

Las opciones de impresión son:

Blanco No se permite

1 Si se imprime

2 Se imprime si el resultado de la comparación es no igual


En cualquier momento puede leerse una ficha de estado nueva para:

a) Emitir las sucesivas CALLS sobre otras base

b) Cambiar las opciones de impresión




4.- FICHA DE COMENTARIOS

1 U (Incondicional)
T (Condicional)

2-80 Texto


Se imprime un comentario incondicional al leerse la ficha.

Se imprime un comentario condicional dependiendo de los resultados de la próxima CALL y de lo especificado en la ficha de estado, pero se imprime antes de imprimir nada respecto a esa próxima CALL.




5.- FICHA CALL

Posición Contenido

1 L

5-8 Número de veces a emitir este CALL

10-13 Función (GU, GN; etc..)

16-23 Nombre del segmento

25 ( En SSA’S calificadas
b En SSA’S no calificadas

26-33 Nombre del campo

35-36 Operador

38-XX Valor del campo en la SSA

XX+1

72 No blanco si hay más SSA’S.


Si el valor del campo a comparar pasa a la posición 70, otro registro detrás con CONT en las posiciones 10 a 13 continúa con el campo a partir de la posición 16, campo que terminó en la 71 de la anterior.

Si hay más SSA’S, ponemos un carácter en blanco en la posición 72 y otro registro detrás comenzará la siguiente SSA del camino jerárquico en la posición 16.

Si la función es de ISRT o REPL, la CALL necesita de los datos del segmento completo a insertar o reemplazar.


FICHAS DE DATOS


Posición Contenido

1 L

10-13 DATA

16-71 Datos segmento


Puede continuarse en otro registro colocando un no blanco en la columna 72.



6.- FICHA DE COMPARACION (campos PCB)

Posición Contenido

1 E

2 H Comparación repetida
b

3 Opción si la comparación es no igual

5-6 Nivel de segmento (a comparar)

8-9 Código de estado (a comparar)

11-18 Nombre del segmento (a comparar)

20-22 Longitud clave concatenada (a comparar)

24-XX Clave concatenada (a comparar)

72 No blanco si la clave concatenada continúa en otro registro

La comparación del contenido de la PCB tras la última CALL se realiza para los campos cuyo contenido especifiquemos en este registro.

Pero como existe un código de estado posible o blancos, para indicar no comparación para este campo, colocaríamos XX en la posición 8-9.

Si colocamos bb, las comparaciones serían:

Código de estado devuelto: bb

Si colocamos OK, los códigos bb, GK y GA (que no representan error) serían equivalentes.

Una H en la posición 2 haría que esta o estas comparaciones se realizaran para cada CALL hasta

a) Terminar el programa
b) Leer otra nueva ficha de comparación

En la posición 3 puede ponerse la opción a realizar si alguna de las comparaciones es no igual.

1. SNAP del buffer E/S.
2. SNAP de la región o partición
4. SNAP de los bloques del DLI
8. Fin de programa

La suma de estas opciones y la codificación del resultado en hexadecimal dan por resultado la ejecución de varias opciones a la vez.

El número total de comparaciones por no igual viene reflejado en el código de estado del paso.






7.- FICHA DE COMPARACION (segmento)

Posición Contenido

1 E

10-13 DATA

16-71 Datos a compara con el segmento recibido

72 No blancos si estos datos continúan en la posición 16 del siguiente registro.


Dos posibilidades más podremos obtener de este programa de aplicación:

1) Obtener una salida de fichas de comparación (con campos de la PCB, con el contenido del segmento) y/u otras fichas de control.

Las fichas de comparación proporcionadas como salida son las que, según los datos cargados, hubiesen proporcionado una comparación por igual a sucesivas CALL’S que se emitirán en la ejecución del programa.

De esta forma, utilizando las fichas de comparación proporcionadas, se podrá ejecutar de nuevo el programa de las CALL’S que las proporcionó y salvo que los datos concretos hayan sido modificados en la base, los resultados de las comparaciones a tales CALL seguirán siendo por igual.

La ficha que definirá el fichero sería:

//PUNCHDD DD SYSOUT = B

2) Alternar la lectura de las fichas de control de dos ficheros:

//SYSIN DD
//SYSIN2 DD

Atendiendo a un número de secuencia establecido en las posiciones 73-80 de ambos ficheros.



Así, de un fichero standard (SYSIN), podremos alterar y añadir sentencias de control preparando otro (SYSIN2), para una ejecución concreta de este programa.

Ejemplo:

//DLTO JOB
// EXEC PGM=DFSRRC00,PARM=’DLI.DFSDDLTO.PSB1’
//STPLIB DD DSN=IMSVS.RESLIB,DISP=SHR
// DD DSN=IMSVS.PGMLIB,DISP=SHR
//IMS DD DSN=IMSVS.PSBLIB,DISP=SHR
// DD DSN=IMSVS.DBDLIB,DISP=SHR
//KS1 DD DSN=KSDS.HISAM,DISP=OLD
//ES1 DD DSN=ESDS.HISAM,DISP=OLD
//IEFRDER DD DUMMY
//PRINTDD DD SYSOUT=A
//SYSUDUMP DD SYSOUT=A
//SYSIN DD *
S 1 1 1 1 1
U LISTADO DE LA BASE
L GU
EH8 OK
L 9999 GN
/*
//


Este ejemplo proporcionará un listado completo de la base de datos en secuencia jerárquica, a condición de que:

9999 < nº de segmento de la base


avatar
Coboler@
Admin

Mensajes : 215
Reputación : 18
Fecha de inscripción : 02/02/2011
Edad : 37
Localización : Madrid

Ver perfil de usuario http://www.coboleros.es

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.