JCL z/OS DFSMS - IEBCOPY Multiple Copy Operations with Different Output Data Sets



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

JCL z/OS DFSMS - IEBCOPY Example 7: Multiple Copy Operations with Different Output Data Sets

In this example, members are selected, excluded, and copied from input partitioned data sets to an output partitioned data set.
This example is designed to illustrate multiple copy operations.
Figure 1, Figure 2, and Figure 3 show the input and output data sets before and after processing.

Neste exemplo, os membros são selecionados, excluídos e copiados de conjuntos de dados particionados de entrada para um conjunto de dados particionados de saída.
Este exemplo é projetado para ilustrar várias operações de cópia.
A Figura 1, a Figura 2 e a Figura 3 mostram os conjuntos de dados de entrada e saída antes e depois do processamento.

The example follows:
O exemplo segue:

  //COPY     JOB  ...
  //JOBSTEP  EXEC PGM=IEBCOPY
  //SYSPRINT DD  SYSOUT=A
  //OUTA     DD  DSNAME=DATASETA,UNIT=disk,VOL=SER=111113,
  //             DISP=OLD
  //INOUTB   DD  DSNAME=DATASETB,VOL=SER=111115,UNIT=disk,
  //             DISP=(OLD,KEEP)
  //INOUTC   DD  DSNAME=DATASETC,VOL=SER=111114,UNIT=disk,
  //             DISP=(OLD,KEEP)
  //INOUTD   DD  DSNAME=DATASETD,VOL=SER=111116,DISP=OLD,
  //             UNIT=disk
  //INE      DD  DSNAME=DATASETE,VOL=SER=111117,DISP=OLD,
  //             UNIT=disk
  //SYSUT3   DD  UNIT=SYSDA,SPACE=(TRK,(1))
  //SYSUT4   DD  UNIT=SYSDA,SPACE=(TRK,(1))
  //SYSIN    DD  *
           COPY  OUTDD=OUTA
                 INDD=INE
         SELECT  MEMBER=(MA,MJ)
                 INDD=INOUTC
        EXCLUDE  MEMBER=(MM,MN)
           COPY  OUTDD=INOUTB,INDD=INOUTD
                 INDD=((INOUTC,R),INOUTB)
           COPY  OUTDD=INOUTD,INDD=((INOUTB,R))
         SELECT  MEMBER=MM
  /*

The control statements are as follows:
As declarações de controle são as seguintes:

  • OUTA DD defines a partitioned data set, DATASETA, which contains three members (MA, MB and MD).
  • INOUTB DD defines a partitioned data set, DATASETB, which contains two members (MA and MJ).
  • INOUTC DD defines a partitioned data set, DATASETC, which contains four members (MF, ML, MM and MN).
  • INOUTD DD defines a partitioned data set, DATASETD, which contains two members (MM and MP).
  • INE DD defines a partitioned data set, DATASETE, which contains three members (MA, MJ and MK).
  • SYSUT3 and SYSUT4 DD define temporary spill data sets. One track is allocated for each on a disk volume.
  • SYSIN DD defines the control data set, which follows in the input stream.
    The data set contains three COPY statements, two SELECT statements, one EXCLUDE statement, and several INDD statements.
  • The first COPY statement indicates the start of a copy operation. The OUTDD operand specifies DATASETA as the output data set. The first INDD statement specifies DATASETE as the first input data set to be processed. The SELECT statement specifies that members MA and MJ are to be copied from DATASETE to DATASETA. Processing occurs as follows:
    1. Member MA is searched for and found, but is not copied because the replace option is not specified.
    2. Member MJ is searched for, found, and copied to DATASETA.
    The second INDD statement marks the end of the first copy step and the beginning of the second copy step within the first copy operation.
    It specifies DATASETC as the second input data set to be processed.
    Members MF and ML, which are not named on the EXCLUDE statement, are copied because DATASETA contains neither one of them.
    EXCLUDE specifies that members MM and MN are not to be copied from DATASETC to DATASETA.
  • The second COPY statement indicates the start of another copy operation.
    The OUTDD parameter specifies DATASETB as the output data set.
    The INDD parameter specifies DATASETD as the first input data set to be processed.
    Members MP and MM are copied to DATASETB.
    The next INDD statement specifies DATASETC as the second and DATASETB as the third input data set to be processed.
    Members MF, ML, MM and MN are copied from DATASETC.
    Member MM is copied, although DATASETB already contains a member MM, because the replace option is specified.
    The pointer in DATASETB's directory is changed to point to the new (copied) member MM.
    Thus, the space occupied by the replaced member MM is embedded, unused space.
    DATASETB is then compressed in place to remove embedded, unused space.
    (DATASETB is specified as both the input and output data sets.)
  • The third COPY statement indicates the start of the last copy operation.
    The OUTDD parameter specifies DATASETD as the output data set.
    The INDD parameter specifies DATASETB as the input data set.
    SELECT specifies that member MM is to be copied from DATASETB to DATASETD.
    Since the replace option is specified on the data set level, member MM is copied and replaces DATASETDs member MM.

  • OUTA DD define um conjunto de dados particionado, DATASETA, que contém três membros (MA, MB e MD).
  • INOUTB DD define um conjunto de dados particionado, DATASETB, que contém dois membros (MA e MJ).
  • INOUTC DD define um conjunto de dados particionado, DATASETC, que contém quatro membros (MF, ML, MM e MN).
  • INOUTD DD define um conjunto de dados particionado, DATASETD, que contém dois membros (MM e MP).
  • INE DD define um conjunto de dados particionado, DATASETE, que contém três membros (MA, MJ e MK).
  • SYSUT3 e SYSUT4 DD definem conjuntos de dados auxiliares temporários. Uma trilha é alocada para cada um em um volume de disco.
  • SYSIN DD define o conjunto de dados de controle, que segue no fluxo de entrada.
    O conjunto de dados contém três instruções COPY, duas instruções SELECT, uma instrução EXCLUDE e várias instruções INDD.
  • A primeira instrução COPY indica o início de uma operação de cópia.
    O operando OUTDD especifica DATASETA como o conjunto de dados de saída.
    A primeira instrução INDD especifica DATASETE como o primeiro conjunto de dados de entrada a ser processado.
    A instrução SELECT especifica que os membros MA e MJ devem ser copiados de DATASETE para DATASETA.
    O processamento ocorre da seguinte forma:
    1. O membro MA é pesquisado e encontrado, mas não é copiado porque a opção de substituição não foi especificada.
    2. O membro MJ é procurado, encontrado e copiado para DATASETA.
    A segunda instrução INDD marca o final da primeira etapa de cópia e o início da segunda etapa de cópia dentro da primeira operação de cópia.
    Ele especifica DATASETC como o segundo conjunto de dados de entrada a ser processado.
    Os membros MF e ML, que não são nomeados na instrução EXCLUDE, são copiados porque DATASETA não contém nenhum deles.
    EXCLUDE especifica que os membros MM e MN não devem ser copiados de DATASETC para DATASETA.
  • A segunda instrução COPY indica o início de outra operação de cópia.
    O parâmetro OUTDD especifica DATASETB como o conjunto de dados de saída.
    O parâmetro INDD especifica DATASETD como o primeiro conjunto de dados de entrada a ser processado.
    Os membros MP e MM são copiados para DATASETB.
    A próxima instrução INDD especifica DATASETC como o segundo e DATASETB como o terceiro conjunto de dados de entrada a ser processado.
    Membros MF, ML, MM e MN são copiados de DATASETC.
    O membro MM é copiado, embora DATASETB já contenha um membro MM, porque a opção de substituição foi especificada.
    O ponteiro no diretório do DATASETB é alterado para apontar para o novo membro MM (copiado).
    Assim, o espaço ocupado pelo membro substituído MM é um espaço embutido não utilizado.
    O DATASETB é então compactado no local para remover o espaço incorporado não utilizado.
    (DATASETB é especificado como os conjuntos de dados de entrada e saída.)
  • A terceira instrução COPY indica o início da última operação de cópia.
    O parâmetro OUTDD especifica DATASETD como o conjunto de dados de saída.
    O parâmetro INDD especifica DATASETB como o conjunto de dados de entrada.
    SELECT especifica que o membro MM deve ser copiado de DATASETB para DATASETD.
    Como a opção de substituição é especificada no nível do conjunto de dados, o membro MM é copiado e substitui o membro MM de DATASETDs.

Figure 1. Multiple copy operations/copy steps within a job step (Part 1 of 3)
Figura 1. Várias operações de cópia/etapas de cópia em uma etapa do trabalho (Parte 1 de 3)

Figure 2. Multiple copy operations/copy steps within a job step (Part 2 of 3)
Figura 2. Várias operações de cópia/etapas de cópia em uma etapa do trabalho (Parte 2 de 3)

Figure 3. Multiple copy operations/copy steps within a job step (Part 3 of 3)
Figura 3. Várias operações de cópia/etapas de cópia em uma etapa do trabalho (Parte 3 de 3)

Parent topic: IEBCOPY Examples



© Copyright IBM Corp.