Introdução sobre Sort
Para quem nunca mexeu com JCL hoje vamos mostrar as funcionalidades que é uma mão na roda o SORT, o que ele faz? Imagine que você tem um arquivo com o nome e o telefone de várias amigos só que os nomes estão fora de ordem, o SORT classifica os nomes em ordem ascendente/descendente deixando mais fácil para você localizar os nomes e números de telefone, vamos começar a colocar a mão na massa e ver como funciona na pratica;
O nosso jcl de teste, reparem que o SORTIN (é onde esta a nossa entrada de dados), o resultado (saída) SORTOUT vai ser aonde vamos jogar os dados classificados do nosso SORT, neste exemplo estamos gravando em um dataset, o parametro SORT FIELDS=(1,6,CH,D) - é como vamos classificar os dados - 1,6 - vamos pegar da primeira posição o número 6 quer dizer o tamanho total do campo;
Depois de rodar vamos voltar na tela inicial, vamos checar o resultado do nosso dataset, opção 3.4 (enter) para a gente ver o novo arquivo criado;
Coloque o nome do arquivo;
Coloque B abaixo de command (tecle enter);
Olha o resultado, a posição 1 até a 6 foi classificada em forma descentente (do maior para o menor);
Agora vamos rodar o job de novo, vamos classificar os campos númericos só que agora vamos classificar em ascendente do menor para o maior valor, o parametro SORT FIELDS=(8,6,CH,A) - a primeira posição é a oitava - o tamanho desse campo é 6 e vamos classificar de ascendente (A) - um detalhe importante, como este arquivo já existe temos que alterar o parametro disp do arquivo - em //SORTOUT DD DSN=IBMUSER.SORT,DISP=(NEW,CATLG), agora vai ficar como //SORTOUT DD DSN=IBMUSER.SORT,DISP=(SHR), rodando;
Resultado, do menor para o maior;
Para quem nunca mexeu com JCL hoje vamos mostrar as funcionalidades que é uma mão na roda o SORT, o que ele faz? Imagine que você tem um arquivo com o nome e o telefone de várias amigos só que os nomes estão fora de ordem, o SORT classifica os nomes em ordem ascendente/descendente deixando mais fácil para você localizar os nomes e números de telefone, vamos começar a colocar a mão na massa e ver como funciona na pratica;
O nosso jcl de teste, reparem que o SORTIN (é onde esta a nossa entrada de dados), o resultado (saída) SORTOUT vai ser aonde vamos jogar os dados classificados do nosso SORT, neste exemplo estamos gravando em um dataset, o parametro SORT FIELDS=(1,6,CH,D) - é como vamos classificar os dados - 1,6 - vamos pegar da primeira posição o número 6 quer dizer o tamanho total do campo;
File Edit Edit_Settings Menu Utilities Compilers Test Help
EDIT ADCD.LIB.JCL(SORT2) - 01.02 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //SORT1 JOB (20,FB3),TRALEY,COND=(0,NE),
000002 // CLASS=A,MSGCLASS=H,NOTIFY=IBMUSER,REGION=5M
000003 //* ------------------------------------------------------
000004 //* RODANDO JCL DE SORT
000005 //* ------------------------------------------------------
000006 //SORT EXEC PGM=SORT
000007 //SORTIN DD *
000008 AAAAAA 999999 APARECIDA
000009 BBBBBB 888888 BENEDITA
000010 CCCCCC 777777 CIDA COSTA
000011 DDDDDD 666666 DIANA
000012 EEEEEE 555555 ELEDIANA
000013 HHHHHH 444444 FRANCISCA
000014 //SYSOUT DD SYSOUT=A
000015 //SORTOUT DD DSN=IBMUSER.SORT,DISP=(NEW,CATLG),
000016 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160),
000017 // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
000018 //SYSIN DD *
000019 SORT FIELDS=(1,6,CH,D)
000020 RECORD TYPE=F,LENGTH=(1500)
****** **************************** Bottom of Data ****************************
F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up
F8=Down F9=Swap F10=Left F11=Right F12=Cancel
Depois de rodar vamos voltar na tela inicial, vamos checar o resultado do nosso dataset, opção 3.4 (enter) para a gente ver o novo arquivo criado;
Menu Utilities Compilers Options Status Help
ISPF Primary Option Menu
0 Settings Terminal and user parameters User ID . : ADCDMST
1 View Display source data or listings Time. . . : 12:47
2 Edit Create or change source data Terminal. : 3278
3 Utilities Perform utility functions Screen. . : 1
4 Foreground Interactive language processing Language. : ENGLISH
5 Batch Submit job for language processing Appl ID . : ISR
6 Command Enter TSO or Workstation commands TSO logon : ISPFPROC
7 Dialog Test Perform dialog testing TSO prefix: ADCDMST
8 Workplace ISPF Object/Action Workplace System ID : ADCD
9 IBM Products IBM program development products MVS acct. : ACCT#
10 SCLM SW Configuration Library Manager Release . : ISPF 6.0
11 SDSF Spool Search and Display Facility
M More Additional IBM Products
Enter X to Terminate using log/list defaults
Option ===> 3.4
F1=Help F2=Split F3=Exit F7=Backward F8=Forward F9=Swap
F10=Actions F12=Cancel
Coloque o nome do arquivo;
Menu RefList RefMode Utilities Help
Data Set List Utility
More: +
blank Display data set list P Print data set list
V Display VTOC information PV Print VTOC information
Enter one or both of the parameters below:
Dsname Level . . . IBMUSER.SORT
Volume serial . .
Data set list options
Initial View Enter "/" to select option
1 1. Volume / Confirm Data Set Delete
2. Space / Confirm Member Delete
3. Attrib / Include Additional Qualifiers
4. Total / Display Catalog Name
Display Total Tracks
When the data set list is displayed, enter either:
"/" on the data set list command field for the command prompt pop-up,
Option ===>
F1=Help F2=Split F3=Exit F7=Backward F8=Forward F9=Swap
F10=Actions F12=Cancel
Coloque B abaixo de command (tecle enter);
Menu Options View Utilities Compilers Help
DSLIST - Data Sets Matching IBMUSER.SORT Row 1 of 1
Command - Enter "/" to select action Message Volume
-------------------------------------------------------------------------------
b IBMUSER.SORT ZASYS1
***************************** End of Data Set list ****************************
Command ===> Scroll ===> PAGE
F1=Help F2=Split F3=Exit F5=Rfind F7=Up F8=Down F9=Swap
F10=Left F11=Right F12=Cancel
Olha o resultado, a posição 1 até a 6 foi classificada em forma descentente (do maior para o menor);
Menu Utilities Compilers Help
BROWSE IBMUSER.SORT Line 00000000 Col 001 080
********************************* Top of Data **********************************
HHHHHH 444444 FRANCISCA
EEEEEE 555555 ELEDIANA
DDDDDD 666666 DIANA
CCCCCC 777777 CIDA COSTA
BBBBBB 888888 BENEDITA
AAAAAA 999999 APARECIDA
******************************** Bottom of Data ********************************
Command ===> Scroll ===> PAGE
F1=Help F2=Split F3=Exit F5=Rfind F7=Up F8=Down F9=Swap
F10=Left F11=Right F12=Cancel
Agora vamos rodar o job de novo, vamos classificar os campos númericos só que agora vamos classificar em ascendente do menor para o maior valor, o parametro SORT FIELDS=(8,6,CH,A) - a primeira posição é a oitava - o tamanho desse campo é 6 e vamos classificar de ascendente (A) - um detalhe importante, como este arquivo já existe temos que alterar o parametro disp do arquivo - em //SORTOUT DD DSN=IBMUSER.SORT,DISP=(NEW,CATLG), agora vai ficar como //SORTOUT DD DSN=IBMUSER.SORT,DISP=(SHR), rodando;
File Edit Edit_Settings Menu Utilities Compilers Test Help
EDIT ADCD.LIB.JCL(SORT2) - 01.03 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //SORT1 JOB (20,FB3),TRALEY,COND=(0,NE),
000002 // CLASS=A,MSGCLASS=H,NOTIFY=IBMUSER,REGION=5M
000003 //* ------------------------------------------------------
000004 //* RODANDO JCL DE SORT
000005 //* ------------------------------------------------------
000006 //SORT EXEC PGM=SORT
000007 //SORTIN DD *
000008 AAAAAA 999999 APARECIDA
000009 BBBBBB 888888 BENEDITA
000010 CCCCCC 777777 CIDA COSTA
000011 DDDDDD 666666 DIANA
000012 EEEEEE 555555 ELEDIANA
000013 HHHHHH 444444 FRANCISCA
000014 //SYSOUT DD SYSOUT=A
000015 //SORTOUT DD DSN=IBMUSER.SORT,DISP=(SHR),
000016 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160),
000017 // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
000018 //SYSIN DD *
000019 SORT FIELDS=(8,6,CH,A)
000020 RECORD TYPE=F,LENGTH=(1500)
****** **************************** Bottom of Data ****************************
F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up
F8=Down F9=Swap F10=Left F11=Right F12=Cancel
Resultado, do menor para o maior;
Menu Utilities Compilers Help
BROWSE IBMUSER.SORT Line 00000000 Col 001 080
********************************* Top of Data **********************************
HHHHHH 444444 FRANCISCA
EEEEEE 555555 ELEDIANA
DDDDDD 666666 DIANA
CCCCCC 777777 CIDA COSTA
BBBBBB 888888 BENEDITA
AAAAAA 999999 APARECIDA
******************************** Bottom of Data ********************************
Command ===> Scroll ===> PAGE
F1=Help F2=Split F3=Exit F5=Rfind F7=Up F8=Down F9=Swap
F10=Left F11=Right F12=Cancel
0 comentários:
Enviar um comentário