es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Programa PC COBOL a JCL.

Tengo el siguiente programa COBOL simple, escrito para el PC. Simplemente lee un archivo de la computadora y escribe en el archivo:

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUSTOMER-FILE ASSIGN TO
"C:Customers.dat"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD CUSTOMER-FILE.
01 CUSTOMER-RECORD.
05 FIRST-NAME PIC X(20).
05 LAST-NAME PIC X(20).
WORKING-STORAGE SECTION.
01 WS-CUSTOMER-RECORD.
05 WS-FIRST-NAME PIC X(20).
05 WS-LAST-NAME PIC X(20).
01 WS-EOF PIC X.
PROCEDURE DIVISION.
OPEN OUTPUT CUSTOMER-FILE
PERFORM UNTIL CUSTOMER-RECORD = SPACES
DISPLAY "Enter the first and last name for the customer"
ACCEPT CUSTOMER-RECORD
WRITE CUSTOMER-RECORD
END-PERFORM
CLOSE CUSTOMER-FILE
DISPLAY "Output from the Customer File:"
OPEN INPUT CUSTOMER-FILE.
PERFORM UNTIL WS-EOF = 'Y'
READ CUSTOMER-FILE INTO WS-CUSTOMER-RECORD
AT END MOVE 'Y' TO WS-EOF
NOT AT END DISPLAY WS-CUSTOMER-RECORD
END-READ
END-PERFORM.
CLOSE CUSTOMER-FILE.
GOBACK.

Mi pregunta: No estoy muy familiarizado con JCL. Entonces, si quisiera poner este programa en un mainframe, ¿qué haría con JCL?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para ejecutar este programa COBOL en una mainframe, tendrías que crear un script JCL (Lenguaje de Control de Trabajos) que definiría los archivos de entrada y salida, asignaría memoria e iniciaría el compilador COBOL y el enlazador.

    Aquí tienes un ejemplo de script JCL:

    //JOBNAME JOB ACCOUNT,CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
    //STEP1 EXEC PGM=IGYCRCTL,REGION=0M
    //STEPLIB DD DSN=SYS1.CEE.SCEEH.SCEELKED,DISP=SHR
    //SYSLIN DD DSN=YOUR.COBOL.PROGRAM.LOADLIBRARY,DISP=SHR
    //SYSIN DD *
      INCLUDE COPYLIB(MYCOPY)
    /*
    //PCUSTOMR DD DSN=YOUR.COBOL.PROGRAM.CUSTOMR.FILE,
    //            DISP=SHR
    //PSYSOUT DD SYSOUT=*
    //SYSOUT DD SYSOUT=*
    //SYSUDUMP DD SYSOUT=*
    //SYSOUT DD SYSOUT=*
    //SYSPRINT DD SYSOUT=*
    //SYSOUT DD SYSOUT=*
    //SYSDFP DD DISP=MOD,DSN=&SYSUID..MY.COBOL.PROGRAM.CUSTOMER.FILE
    //SYSUT1 DD DATA,DLM='&&'
    //SYSUT2 DD SYSOUT=A,DCB=(SYSUT1)
    //* The following DD statement will contain the actual data:
    //SYSUT3 DD DATA,DLM='&&'
    Customer1         Smith
    Customer2         Johnson
    Customer3         Davis
    &&
    //*
    //SYSIN DD *
      COBOL MYPROGRAM
      //*
    

    En este ejemplo, el script JCL define la instrucción JOB que da un nombre al trabajo y especifica ciertos parámetros sobre su ejecución. La instrucción STEP1 define un paso de ejecución que ejecuta el programa IGYCRCTL, que es el compilador y enlazador COBOL. La instrucción STEPLIB DD apunta a la biblioteca donde se pueden encontrar los módulos en tiempo de ejecución de COBOL. La instrucción SYSLIN DD apunta a la biblioteca de carga que contiene el programa compilado. La instrucción SYSIN DD contiene el código fuente de COBOL.

    El archivo de entrada se define en la instrucción PCUSTOMR DD, mientras que los archivos de salida se definen en las instrucciones PSYSOUT y SYSPRINT DD. Las instrucciones SYSUT1 y SYSUT2 DD se utilizan para el procesamiento intermedio, y la instrucción SYSUT3 DD es donde se define los datos reales.

    En resumen, el script JCL proporciona una forma de ejecutar el programa COBOL en la mainframe al definir los recursos y parámetros necesarios.

Comments are closed.