如何在Easytrieve内部SORT中加入记录?

时间:2019-03-13 10:47:16

标签: mainframe zos dfsort 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)

我想知道是否可以在EasyTrive中执行上述SORT / ICETOOL操作。我使用过Easytrieve内部SORT,但这是用于简单提取的。我们可以在Easytrieve中执行联接操作吗?

注意-这个想法是有一个EZT步骤。

1 个答案:

答案 0 :(得分:0)

您可以使用Easytrieve中的同步文件处理工具(SFP)来完成任务。进一步了解here

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条件下为 创建报告。

希望这会有所帮助!