2012-12-17 2 views
0

메인 프레임 프로그래밍 (TSO, JCL, COBOL ...)을 배우고 있으며 아직 해결할 수없는 문제가 발생했습니다.JCL SORT의 Outfil이 작동하도록하려면

3 개의 필드가 들어있는 파일이 있는데 'outfil'을 사용하여 출력 파일의 특정 레코드 만 포함하려고합니다.

000001 //C8112J1 JOB (12345678),C8112,MSGCLASS=H, 
000002 //   MSGLEVEL=(1,1),NOTIFY=C8112 
(...) 
000007 //DSNDEL EXEC PGM=IDCAMS 
000008 //SYSPRINT DD SYSOUT=* 
000009 //SYSIN DD * 
000010 DELETE C8112.DATA.FX.SORT 
000011 SET  MAXCC = 0 
000012 /* 
(...) 
000014 //*     --------- S O R T ----------- 
000020 //MYSORT EXEC PGM=SORT,COND=(0,NE) 
000021 //SORTIN DD DSN=C8112.DATA.FX,DISP=SHR 
000022 //SORTOUT DD DSN=C8112.DATA.FX.SORT, 
000023 //   SPACE=(TRK,(100,100),RLSE), 
000024 //   DISP=(NEW,CATLG,DELETE), 
000025 //   DCB=(LRECL=61,RECFM=FB) 
000026 //SYSIN DD * 
000027 SORT FIELDS=COPY 
000028 //* SORT FIELDS=(1,18,CH,A) OU SORT=COPY 
000029 OUTFIL INCLUDE=(1,18,CH,EQ,C'ANDRADE,LUISA') 
... 
000031 //*  OUTREC=(39,41,1,18,19,38) 
000032 END 
000033 //SYSOUT DD SYSOUT=* 
000034 /* 

및 출력 파일 :

내 JCL은 다음과 같다

000001 LUIS,CARLOS  AV.PAULO VI   RMR  
000002 DIAS,PATTY  RUA PEDRO CALMON LX 
000003 ANDRADE,LUISA  AV. DA LIBERDADE LX  (1) 
000004 SILVA,TONI  PALACIO VALMOR  LX 
000005 ANDRADE,LUISA  AV. DA BOAVISTA  POT (2) 
000006 CISCO,MANUEL  QUINTA DA AVELEDA TC 

이 내가 할 안되었다

레코드 만 (1)과 (2)! 그건 그렇고, 나는 또한 'outrec'바이트 조직을 변경하려고했지만 너무 일하지 않았다. 누군가 내가 잘못하고있는 것에 대한 힌트를 줄 수 있습니까?

답변

2

는 다음과 같은 시도 :

000020 //MYSORT EXEC PGM=SORT,COND=(0,NE) 
    000021 //SORTIN DD DSN=C8112.DATA.FX,DISP=SHR 
    000022 //SORTOUT DD DSN=C8112.DATA.FX.SORT, 
    000023 //   SPACE=(TRK,(100,100),RLSE), 
    000024 //   DISP=(NEW,CATLG,DELETE), 
    000025 //   DCB=(LRECL=61,RECFM=FB) 
    000026 //SYSIN DD * 
    000027 SORT FIELDS=COPY 
    000029 OUTFIL INCLUDE=(1,18,CH,EQ,C'ANDRADE,LUISA') 
    ... 
    000032 END 
    000031 /* 
    000033 //SYSOUT DD SYSOUT=* 
    000034 //* 

정렬 SYSIN는 "의견"을 허용하지 않습니다. 당신이 생각했던 그 라인들은 정말로 코멘트가 아닐 수도 있습니다. SYSIN DD 문을 종료합니다. 다음은 모두 잘 작동

//* SORT FIELDS=(1,18,CH,A) OU SORT=COPY 

//*  OUTREC=(39,41,1,18,19,38) 

: 기본적으로 그냥 없애있어. JCL 코멘트는 SORT 코멘트가 아닙니다. DD * 이후의 항목은 JCL 소스 문이 아닌 데이터이므로 JCL 유형 주석 지정 규칙은 여기서 작동하지 않습니다. DD *은 일반적으로 /*으로 시작하는 줄로 끝납니다.

+0

'outrec 문을 주석 처리했을 때 문제가 해결되었지만 다른 문제가 발생했습니다. 나는 MAXCC = 16을 얻었다. 그러나 그것은 또 다른 질문입니다. 고맙습니다! – csbl81

+0

@ CSbl81 OUTREC은 유효하지 않습니다 (구문 오류). 너는 그걸로 무엇을하려 했는가? – NealB

+0

필드 순서를 재구성하려고합니다. – csbl81

3

* *가 아닌 DFSORT에서 단일 *를 주석 분리 문자로 사용할 수 있습니다. 이미 지적했듯이/을 코딩 한 것처럼 SYSIN을 종료합니다. (실제로/이 나중에 있습니다.)

관련 문제