Las llamadas IMS DL / I utilizan los siguientes métodos diferentes de recuperación de datos:
Echemos un vistazo a la siguiente estructura de la base de datos IMS para comprender las llamadas a la función de recuperación de datos:
Los conceptos básicos para llamar a GU son los siguientes:
La llamada GU se conoce como llamada Get Unique. Se utiliza para procesamiento aleatorio.
Si la aplicación no actualiza la base de datos con regularidad o el número de actualizaciones de la base de datos es menor, utilizamos el procesamiento aleatorio.
La llamada GU se utiliza para colocar el puntero en una posición específica para una búsqueda secuencial adicional.
Las llamadas GU son independientes de la posición del puntero establecida por llamadas anteriores.
El procesamiento de la llamada GU se basa en campos clave únicos especificados en la declaración de la llamada.
Si proporcionamos un campo clave que no es único, DL / I devuelve la primera aparición del segmento del campo clave.
CALL 'CBLTDLI' USING DLI-GU PCB-NAME IO-AREA LIBRARY-SSA BOOKS-SSA ENGINEERING-SSA IT-SSA
El ejemplo anterior muestra que estamos haciendo una llamada GU, proporcionando el conjunto completo de SSA calificados. Incluye todos los campos clave desde el nivel raíz hasta la entrada del segmento que queremos recuperar.
Si no proporcionamos un conjunto completo de SSA calificados en la llamada, entonces DL / I funciona de la siguiente manera:
Cuando usamos un SSA no calificado en una llamada GU, DL / I se refiere a la primera aparición de un segmento en la base de datos que coincide con los criterios que especificó.
Cuando hacemos una llamada GU sin ningún SSA, DL / I devuelve la primera aparición del segmento raíz en la base de datos.
Si algunos SSA en las capas intermedias no se mencionan en la llamada, entonces DL / I usa la posición establecida o el SSA no calificado por defecto para el segmento.
La siguiente tabla muestra los códigos de estado correspondientes después de llamar a GU –
S. No | Código de estado y descripción |
---|---|
uno |
Espacios Llamada exitosa |
2 |
GE DL / No pude encontrar un segmento que coincida con los criterios especificados en la llamada |
Los conceptos básicos de la llamada GN son los siguientes:
La llamada GN se conoce como llamada Get Next. Se utiliza para el procesamiento secuencial básico.
La posición inicial del puntero en la base de datos es antes del segmento raíz del primer registro en la base de datos.
La posición del puntero de la base de datos antes de ingresar al siguiente segmento en la secuencia después de una llamada exitosa a GN.
La llamada GN se inicia a través de la base de datos desde la posición establecida por la llamada anterior.
Si la llamada a GN no está calificada, devuelve la siguiente aparición del segmento en la base de datos independientemente de su tipo en el orden jerárquico.
Si la llamada GN incluye SSA, entonces DL / I recupera solo aquellos segmentos que cumplen con los requisitos de todos los SSA especificados.
CALL 'CBLTDLI' USING DLI-GN PCB-NAME IO-AREA BOOKS-SSA
El ejemplo anterior muestra que estamos haciendo una llamada GN que proporciona una posición inicial para leer registros secuencialmente. Selecciona la primera aparición del segmento LIBROS.
La siguiente tabla muestra los códigos de estado correspondientes después de llamar a GN –
S. No | Código de estado y descripción |
---|---|
uno |
Espacios Llamada exitosa |
2 |
GE DL / No pude encontrar un segmento que coincida con los criterios especificados en la llamada. |
3 |
Georgia La llamada no calificada de GN sube un nivel en la jerarquía de la base de datos para recuperar el segmento. |
cuatro |
GB Se llegó al final de la base de datos y no se encontró el segmento. |
G K Una llamada no calificada GN intenta obtener un segmento de cierto tipo, diferente al que se acaba de recibir, pero permanece en el mismo nivel jerárquico. |
Los códigos de comando se utilizan con llamadas para obtener la ocurrencia de un segmento. Los diversos códigos de comando utilizados con las invocaciones se analizan a continuación.
En una nota –
Cuando se especifica el código de comando F en la llamada, la llamada procesa la primera aparición del segmento.
Los códigos de comando F se pueden usar cuando queremos procesar secuencialmente, y se pueden usar con llamadas GN y llamadas GNP.
Si especificamos el código de comando F con una llamada a GU, no tiene significado, ya que por defecto GU llama a la recuperación de la primera aparición del segmento.
En una nota –
Cuando se especifica el código de comando L en la llamada, la llamada procesa la última aparición del segmento.
Los códigos de comando L se pueden usar cuando queremos procesar secuencialmente, y se puede usar con llamadas GN y llamadas GNP.
En una nota –
El código de comando D se usa para obtener más de una ocurrencia de un segmento con una sola llamada.
Normalmente, DL / I trabaja con el segmento de capa inferior especificado en la SSA, pero en muchos casos también necesitamos datos de otras capas. En estos casos, podemos usar el código de comando D.
El código de comando D facilita la búsqueda de la ruta completa de los segmentos.
En una nota –
El código de comando C se usa para combinar teclas.
El uso de operadores relacionales es un poco complicado, ya que necesitamos proporcionar un nombre de campo, un operador relacional y un valor de búsqueda. En su lugar, podemos usar el código de comando C para proporcionar la clave combinada.
El siguiente ejemplo demuestra el uso del código de comando C:
01 LOCATION-SSA. 05 FILLER PIC X(11) VALUE ‘INLOCSEG*C(‘. 05 LIBRARY-SSA PIC X(5). 05 BOOKS-SSA PIC X(4). 05 ENGINEERING-SSA PIC X(6). 05 IT-SSA PIC X(3) 05 FILLER PIC X VALUE ‘)’. CALL 'CBLTDLI' USING DLI-GU PCB-NAME IO-AREA LOCATION-SSA
En una nota –
Cuando hacemos una llamada GU o GN, DL / I establece su origen en el segmento de nivel más bajo que se recupera.
Si incluimos el código de comando P, entonces DL / I establece su origen en el segmento de nivel superior en la ruta jerárquica.
En una nota –
Cuando el código de comando U se especifica en el SSA no calificado en la llamada GN, DL / I restringe la búsqueda de segmento.
El código de comando U se ignora si se usa con un SSA calificado.
En una nota –
El código de comando V funciona igual que el código de comando U, pero restringe la búsqueda de segmentos a un nivel específico y en todos los niveles por encima de la jerarquía.
El código de comando V se ignora cuando se usa con un SSA calificado.
En una nota –
El código de comando Q se utiliza para poner en cola o reservar un segmento para uso exclusivo de su aplicación.
El código de comando Q se utiliza en un entorno interactivo donde otro programa puede realizar cambios en el segmento.
Un programa puede tener varias posiciones en la base de datos de IMS, lo que se conoce como procesamiento múltiple. El procesamiento múltiple se puede realizar de dos formas:
Se pueden definir varios tableros para una base de datos. Si hay varias placas de circuito impreso, el programa de aplicación puede tener diferentes ideas al respecto. Este método de implementación de procesamiento múltiple es ineficaz debido a la sobrecarga asociada con placas de circuito impreso adicionales.
El programa puede mantener múltiples posiciones en la base de datos usando una sola PCB. Esto se logra manteniendo una posición separada para cada ruta jerárquica. El posicionamiento múltiple se utiliza para acceder secuencialmente a segmentos de dos o más tipos al mismo tiempo.
🚫