Как объединить два файла и создать отчет с соответствующими полями в COBOL - PullRequest
0 голосов
/ 23 апреля 2009

У меня есть два файла: Первый файл содержит имя задания и время начала, которое выглядит следующим образом:

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. Я использовал ICETOOL для получения отчета. Если я получаю JOBNAME START TIME, ENDTIME - это SPACES. пространства. Пожалуйста, дайте мне знать, как закодировать поля outrec, так как я кодировал почти все возможности, чтобы получить желаемое. Но все же мой вывод не совпадает с тем, что мне требовалось

Ответы [ 2 ]

2 голосов
/ 23 апреля 2009

Я понятия не имею, что такое 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 (основываясь на времени). Вторая проблема - это doozy.

Если вы работаете в z / OS (и вам, вероятно, с учетом названий заданий), рассматривали ли вы возможность использования информации из записей SMF для этого сбора и анализа. Я уверен, что записи SMF типа 30 содержат все, что вам нужно.

И если предположить, что является вопросом о мэйнфреймах, вот бесстыдная заглушка для книги, написанной одним из моих друзей на работе, посмотрите Что на Земле является мэйнфреймом? от David Стивенс (ISBN-13 = 978-1409225355).

0 голосов
/ 17 ноября 2011

Я знаю, я слишком поздно с моим разрешением, но может быть полезным для новичков в стеке

Вы можете использовать JOINKEYS из DFSORT, используя JCL.

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 будет хранить данные так, как вам нужно!

...