2009-04-23 3 views
0

에 일치하는 필드가 보고서를 작성에 나는 두 개의 파일이 있습니다어떻게 두 개의 파일을 결합하고 COBOL

ZPUDA13V STARTED - TIME=00.13.30 
ZPUDM00V STARTED - TIME=03.26.54 
ZPUDM01V STARTED - TIME=03.26.54 
ZPUDM02V STARTED - TIME=03.26.54 
ZPUDM03V STARTED - TIME=03.26.56 

과 두 번째 파일은 작업 이름 및 종료 시각을 포함 첫 번째 파일은 다음과 같은 시간을 작업 이름을 포함하고 시작

ZPUDA13V ENDED - TIME=00.13.37 
ZPUDM00V ENDED - TIME=03.27.38 
ZPUDM01V ENDED - TIME=03.27.34 
ZPUDM02V ENDED - TIME=03.27.29 
ZPUDM03V ENDED - TIME=03.27.27 

가 지금은 작업 이름 START TIME ENDTIME.I 같은 보고서가 내가 작업 이름 시작 시간, ENDTIME 공백이다 나타나면 보고서를 얻을 수 ICETOOL을 사용한 얻기 위해이 두 파일을 결합하려고 아래처럼되는 것 같습니다. Endtime을 얻으면 JOBNAME START TIME이 시작됩니다. 보류. 내가 원하는 모든 것을 얻을 수있는 거의 모든 가능성을 코드화 했으므로 outrec 필드를 코딩하는 방법을 알려주십시오.하지만 여전히 내 출력이 필요한 것과 다릅니다.

답변

2

ICETOOL이 무엇인지, 성향을 Google에서 찾아보기도하지만, 이것은 고전적인 COBOL 데이터 처리 작업입니다. 당신의 간단한 데이터 입력을 기반으로

, 알고리즘은 다음과 같습니다 같은 이름의

  • 여러 작업을 실행할 수 있습니다

    for every record S in startfile: 
        for every record E in endfile: 
         if S.jobnname = E.jobname: 
          ouput S.jobname S.time E.time 
          next S 
         endif 
        endfor 
    endfor 
    

    그러나 고려는 사실을해야 할 수도 있습니다 하루 동안 (파일의 여러 항목).

  • 동일한 이름의 여러 작업이 동시에 실행될 수 있습니다.

E 레코드가 시간에 따라 S 레코드 바로 뒤에 오는 것을 보장함으로써 첫 번째 문제를 해결할 수 있습니다. 두 번째 문제는 두더지입니다.

z/OS에서 실행중인 경우 (작업 이름이있는 경우) SMF 레코드의 정보를 사용하여이 수집 및 분석을 고려한 적이 있습니까? 나는 SMF 타입 30 레코드가 당신이 필요로하는 모든 것을 가지고 있다고 확신합니다.

그리고이 가정 메인 프레임 질문이며, 여기에 작성했습니다 직장에서 내 친구의 책 하나에 대한 뻔뻔한 플러그의 데이비드 스티븐스 (ISBN-13 = 978-1409225355)에 의해 What On Earth is a Mainframe?을 확인하십시오.

0

나는 내가 내 해상도 toooo 늦었 어, 알아,하지만 새로운 올 사람 당신은 JCL을 사용하여 DFSORTJOINKEYS를 사용할 수있다

을 유래하는 도움이 될 수 있습니다.

JOINKEYS F1 FIELDS=(01,08,CH,A) 
JOINKEYS F2 FIELDS=(01,08,CH,A) 
REFORMAT FIELDS=(F1:01,33,F2:25,08) 
SORT FIELDS=COPY 
OUTREC FIELDS=(01,08,25,08,34,08) 

outrec는 필요에 따라 데이터를 보관합니다.

+0

REFORMAT 문을 사용하여 모든 작업을 수행 할 수 있습니다. INREC를 사용할 수있을 때 OUTREC을 사용해야하는 이유는 무엇입니까? OUTFIL에서 OUTREC/INREC 또는 OUTREC에 FIELDS를 사용하지 말고 대신 BUILD를 사용하십시오. –

관련 문제