성명 : 이전 파일이 원격 서버 위치에서 메인 프레임으로 반입되었습니다. 그런 다음 파일의 내용을 메인 프레임에서 순차 파일로 가져 와서 저장했습니다. 그러나 때때로 일부 파일 이름에 공백이 포함됩니다. 이 작업으로 인해 콘텐츠를 가져 오는 동안 오류가 발생합니다.파일에 DFSORT를 사용하여 기호 값 전달
이제이 문제를 해결하기 위해 서버에서 모든 파일을 가져 와서 양호한 파일 과 잘못된 파일을 분리했습니다. 이제 좋은 파일 내용 만 가져옵니다.
문제점 : 파일의 이름을 바꾸는 동안 접두어 Process_ 및 Odate (Control M에서 가져온 파일)를 파일 이름에 추가합니다. 하지만 이전에는 유닉스 코드를 통해 아래의 jcl에서 수행되었습니다.
의사 코드 : 인쇄 $ 1 "" "Process_"%% DAT를 "이름 바꾸기" "_"$ 1
우리는 소프트웨어 제어-M에서오다를 가져 오는 있습니다.
JCL 코드 :
//JOBNAME JOB (DEE),'Job Desc',CLASS=P,MSGCLASS=J,
// MSGLEVEL=(1,1),COND=(0,NE)
//* %%SET %%DAT = %%$ODATE
//STEP01 EXEC PROC1
PROC1 코드 :
//STEP02 EXEC PGM=SORT
//SORTIN DD DSN=DS.FILE1,
// DISP=SHR
//SORTOUT DD DSN=DS.FILE2,
// UNIT=SYSSF,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(27920,(29,6),RLSE),
// DISP=(NEW,CATLG,DELETE)
//SYSIN DD DSN=DS.PARM(PARM03),DISP=SHR
PARM03 포함 : 여기 내가 파일 이름을 유닉스 코드를 만드는 오전 :
SORT FIELDS=COPY
OUTFIL BUILD=(1:C'print "get " r_fi',18:SEQNUM, -
3,ZD,22:C'" //DD:upload"',/,1:C'print "rename " r_fi', -
21:SEQNUM,3,ZD,24:C' ', -
25:C' " " "Process_" %%DAT "_" r_fi',53:SEQNUM,3,ZD,80:X)
/*
유닉스 코드를하는 I 동적으로 생성 중임 : 여기 파일 수에 따라 p_fi01, p_fi02, p_fi03 .....이 생성됩니다. 유닉스 코드를 데이터 세트에 저장하고이를 instream으로 전달하여 실행합니다.
문제는 DAT 변수에서 값을 가져올 수 없다는 것입니다. 거기에 어떤 방법이 있습니까, 나는 proc에 jcl에서 D의 값을 전달하고 그것을 추가 할 수
proc에서 정렬 카드를 사용하여 "Process_".
예 데이터 : 파일 File1.csv 내용이 가져온 다음 코드의 나머지는 OK라고 가정 Process_20140101_File1.csv
JCL을 볼 수 있습니까? – SaggingRufus
@BillWoodger 여기에 다른 COBOL 프로그래머를 만나서 너무 흥분했습니다. – SaggingRufus
@BillWoodger : 여기 DFSORT를 사용했습니다. 일부 예제 데이터도 제공했습니다. – deepaklearner