Как объединить записи во внутренней сортировке Easytrieve?

У меня есть требование, когда мне нужно извлечь 2 типа записей из одного входного файла и объединить их для обработки отчета EZT. В настоящее время я написал шаг ICETOOL для выполнения извлечения с последующим соединением. Выходные данные шага ICETOOL передаются на шаг отчета Easytrieve. Карта извлечения, как показано ниже -

SORT    FIELDS=(14,07,PD,A)
OUTFILE FNAMES=FILE010,INCLUDE=(25,03,CH,EQ,C'010')
OUTFILE FNAMES=FILE011,INCLUDE=(25,04,CH,EQ,C'011')
OPTION  DYNALLOC=(SYSDA,05)

Вот карточка присоединения -

SORT     FIELDS=(14,07,PD,A)
JOINKEYS F1=FILE010,FIELDS=(14,07,A),SORTED,NOSEQCHK
JOINKEYS F2=FILE011,FIELDS=(14,07,A),SORTED,NOSEQCHK
REFORMAT FIELDS=(F1:14,07,
                 F2,25,10)
OUTREC   BUILD=(1,17,80:X),VTOF
OPTION   DYNALLOC=(SYSDA,05)

Мне интересно, можно ли было выполнить вышеуказанные операции SORT/ICETOOL в EasyTrive. Я использовал внутреннюю сортировку Easytrieve, но это было для простых извлечений. Можем ли мы выполнить операцию соединения в Easytrieve?

Примечание. Идея состоит в том, чтобы иметь один шаг EZT.


person Saptarshi    schedule 13.03.2019    source источник


Ответы (1)


Вы можете использовать средство синхронизированной обработки файлов (SFP) в Easytrieve для выполнения этой задачи. Подробнее об этом читайте здесь< /а>.

FILE FILE010
KEY1 14 7 N
*
FILE FILE011
KEY2 14 7 N
FIELD1 25 10 A
*
FILE OUTFILE FB(80 0)
OKEY 1 7 N
OFIELD 8 10 A
*
WS-COUNT W 5 N VALUE 0
*
JOB INPUT FILE010 KEY KEY1 FILE011 KEY KEY2 FINISH(DIS)
*
IF EOF FILE010
STOP
END-IF
*
IF MATCHED
OKEY = KEY1
OFIELD = FIELD1
WS-COUNT = WS-COUNT + 1
PUT OUTFILE
END-IF
*
DIS. PROC
DISPLAY 'RECORDS WRITTEN: ' WS-COUNT
END-PROC

Пожалуйста, обрати внимание,

  • Приведенный выше код не тестировался, это просто черновик, показывающий идею сопоставления файлов с использованием Easytrieve для выполнения задачи.
  • Типы данных для элементов данных предполагаются. Возможно, вам придется изменить их соответствующим образом.
  • Возможно, вам придется определить переменные входные наборы данных в операторе FILE.
  • Вы можете добавить дополнительные операторы в условие IF MATCHED для создания отчета.

Надеюсь это поможет!

person Srinivasan JV    schedule 14.03.2019
comment
Привет Шринивасан, идея состоит в том, чтобы взять один файл в качестве входных данных. Разделите его на 2, а затем используйте разделенные файлы для обработки. Все за один шаг. - person Saptarshi; 15.03.2019