2009-04-23 15 views
0

にマッチしたフィールドでレポートを作成し、私は2つのファイルを持っている:どのように2つのファイルを結合し、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 

今私はJOBNAME START TIME ENDTIME.Iのようなレポートを取得するには、これらの2つのファイルを結合しようとしています、私はJOBNAME START TIMEを取得する場合、ENDTIMEがSPACESでレポートを取得するために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レコードの直後(時間ベース)であることを確認することで、最初の問題を回避できます。 2番目の問題は、厄介なことです。

z/OSで稼働している場合(そしてジョブ名が与えられている可能性もあります)、この収集と分析を行うためにSMFレコードの情報を使用することを検討しましたか?私はかなりあなたが必要とするすべてのSMFタイプ30のレコードを保持しています。

そしてこのであるメインフレームの質問を想定したが、ここではデビッド・スティーブンス(ISBN-13 = 978から1409225355)によってWhat On Earth is a Mainframe?をチェックし、職場での書籍の私の友人の一人のための恥知らずなプラグが書かれています。私が知っている

0

、私はtoooo後半に私の解像度を持つんだけど、あなたはJCLを使用してDFSORTJOINKEYSを利用することができ

をStackOverflowのための新規参入のための役に立つかもしれません。

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を使用してください。 –

関連する問題