BlogJCL

INCLUDE Condition – SORT en JCL

En JCL (Job Control Language), la condición INCLUDE se utiliza en el contexto del paso de clasificación, SORT, para especificar un conjunto de registros que se deben incluir en la salida del paso de clasificación. La cláusula INCLUDE ayuda a filtrar registros según un criterio específico y retener solo aquellos que cumplen con esa condición. Aquí tienes un diseño básico y una explicación de las características de la condición INCLUDE:

Dentro de la condición INCLUDE en JCL, puedes especificar diferentes tipos de campos y utilizar varios operadores de comparación. A continuación, se detallan algunos tipos comunes de campos y operadores que puedes utilizar:

Tipos de Campos

Caracteres (CH)

  • CH: Campos de caracteres. Se utilizan para comparar cadenas de texto. Sin COMP.
INCLUDE COND=(1,10,CH,EQ,C'MAINFRAME')

Hexadecimal (BI)

  • BI: Campos hexadecimales. Se utilizan para comparar cadenas de caracteres en hexadecimal. Con COMP.

Para la constante hexadecimal, hay que recordar las reglas de relleno y truncamiento. Si se especifica X’0A’, la cadena se rellena a la derecha en lugar de a la izquierda. Para la constante decimal, se puede usar 10 o +10, y no hay que preocuparse por el relleno o el truncamiento.

INCLUDE COND=(1,4,BI,EQ,X'0000000A')

Numéricos (PD)

  • PD: Campos numéricos. Se utilizan para comparar valores numéricos.
INCLUDE COND=(11,5,PD,GT,1000)

Fecha (YMD, DMY, MDY, etc.)

Puedes especificar un formato de fecha para campos de fecha.

INCLUDE COND=(21,8,YMD,EQ,C'20220119')

Operadores de Comparación

Igual (EQ)

  • EQ: Igual.
INCLUDE COND=(1,5,CH,EQ,C'ABC')

No Igual (NE)

  • NE: No igual.
INCLUDE COND=(6,3,PD,NE,500)

Mayor que (GT), Menor que (LT)

  • GT: Mayor que.
  • LT: Menor que.
INCLUDE COND=(11,5,PD,GT,1000)

Mayor o Igual que (GE), Menor o Igual que (LE)

  • GE: Mayor o igual que.
  • LE: Menor o igual que.
INCLUDE COND=(21,8,YMD,GE,C'20220119')

Entre (BE)

  • BE: Entre. Se utiliza para especificar un rango.
INCLUDE COND=(31,3,PD,BE,100,500)

LIKE

  • LIKE: Se utiliza para comparaciones basadas en patrones (similar a las expresiones regulares).
INCLUDE COND=(1,10,CH,LIKE,C'MAIN%')

AND, OR, NOT

  • AND: Operador lógico «Y».
  • OR: Operador lógico «O».
  • NOT: Operador lógico de negación.
INCLUDE COND=((1,5,CH,EQ,C'ABC'),AND,(6,3,PD,GT,500))

Estos son solo algunos ejemplos de los tipos de campos y operadores de comparación que puedes utilizar dentro de la condición INCLUDE en JCL. La documentación específica del producto de clasificación que estás utilizando proporcionará detalles más precisos y opciones adicionales.

Ejemplo de JCL con INCLUDE

//SORTJOB  JOB  (123),'Sort con INCLUDE',CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//STEP1    EXEC PGM=SORT
//SYSOUT   DD  SYSOUT=A
//SORTIN   DD  DSN=your.input.file,DISP=SHR
//SORTOUT  DD  DSN=your.output.file,DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
//SYSIN    DD  *
  SORT FIELDS=(1,10,A)
  INCLUDE COND=(11,2,CH,EQ,C'20')
/*

En este ejemplo, la condición `INCLUDE` se usa para incluir solo los registros que cumplen con la condición especificada. En este caso, los registros cuyo contenido en las posiciones 11 y 12 sea igual a '20'. La estructura de la condición es la siguiente:

- **COND=(posición, longitud, tipo, operador, valor):**
  - `posición`: Posición de inicio del campo.
  - `longitud`: Longitud del campo.
  - `tipo`: Tipo de campo (por ejemplo, `CH` para caracteres).
  - `operador`: Operador de comparación (por ejemplo, `EQ` para igual).
  - `valor`: Valor con el que se compara el campo.

### Características de la Condición `INCLUDE`:

1. **Versatilidad:**
   - Puedes especificar condiciones complejas utilizando operadores lógicos (`AND`, `OR`, `NOT`) para combinar múltiples condiciones.

2. **Tipos de Campo:**
   - Puedes aplicar condiciones a diferentes tipos de campos, como campos de caracteres (`CH`), campos numéricos (`PD`), campos de fecha (`YMD`, `DMY`, etc.).

3. **Operadores de Comparación:**
   - Diversos operadores de comparación están disponibles, como igual (`EQ`), no igual (`NE`), mayor que (`GT`), menor que (`LT`), mayor o igual que (`GE`), menor o igual que (`LE`), entre otros.

4. **Negación:**
   - Puedes negar una condición utilizando `NOT` para seleccionar registros que no cumplan con la condición.

5. **Combinación de Condiciones:**
   - Puedes combinar múltiples condiciones utilizando operadores lógicos para crear criterios más complejos.

### Ejemplo de Condición Combinada:

```jcl
INCLUDE COND=((11,2,CH,EQ,C'20'),AND,(21,3,PD,GT,100))

En este ejemplo, se incluirán los registros que cumplen con ambas condiciones: aquellos con los dos primeros caracteres iguales a ’20’ y los siguientes tres caracteres como un número mayor que 100.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *