Code: |
SEARCH W-STYLES WITH STYLE GIVING WS-STYLE IF W-STYLES RPT-STYLE EQ STYLE STYLE EQ WS-STYLE PRINT STYLE-SUMMARY END-IF MOVE SPACES TO NEW701 PUT O701 FROM I701 Complete jcl step is: //CHGSYTL EXEC PGM=EZTPA00 //STEPLIB DD DSN=CAI.EZTP.LOAD,DISP=SHR //PDS DD DSN=LMF004.PROD.MACEZT,DISP=SHR //SYSPRINT DD SYSOUT=* //EZTVFM DD UNIT=SYSDA,SPACE=(0,(5000,1000)) //ZSTYLES DD DSN=DSV.DSV000.NSTYLES.@01DEL,DISP=SHR //I701 DD DSN=INPUT 701 FILE HERE,DISP=SHR //O701 DD DSN=DSV.DSV000.NTEST.@01DEL, //* DISP=(,CATLG), // DISP=OLD, // SPACE=(CYL,(150,50),RLSE), // DCB=(RECFM=FB,LRECL=1360,DSORG=PS) //PRINTER1 DD SYSOUT=* //PRINTER2 DD SYSOUT=* //SYSIN DD * PARM DEBUG (FLOW FLOWSIZ (200)) FILE PRINTER1 PRINTER FILE PRINTER2 PRINTER FILE O701 NEW701 1 1360 A FILE I701 CUSTCODE 1 8 A STYLE 44 6 A VOIDED 125 1 A PLANT 237 4 A CUT 545 12 A OCCURS 3 BRANCH 433 5 A RPT-CUSTCODE W 8 A RPT-STYLE W 6 A I701-KEY W 13 A BC-KEY I701-KEY 8 A BR-KEY I701-KEY +8 5 A FILE ZSTYLES FILE W-STYLES FB(80 27920) VIRTUAL RETAIN TABLE 500 ARG 1 6 A DESC 22 6 A WS-STYLE W 6 A FILE X-STYLES FB(80 27920) VIRTUAL RETAIN TABLE 500 ARG 1 8 A DESC 34 8 A XS-STYLE W 8 A JOB INPUT ZSTYLES. PUT W-STYLES FROM ZSTYLES PUT X-STYLES FROM ZSTYLES JOB INPUT I701 SEARCH W-STYLES WITH STYLE GIVING WS-STYLE IF W-STYLES RPT-STYLE EQ STYLE STYLE EQ WS-STYLE PRINT STYLE-SUMMARY END-IF MOVE SPACES TO NEW701 PUT O701 FROM I701 REPORT STYLE-SUMMARY PRINTER PRINTER2 SUMMARY NOADJUST + NOHEADING NOPAGE NODATE SEQUENCE RPT-STYLE STYLE CONTROL FINAL NOPRINT RPT-STYLE NOPRINT STYLE LINE 01 RPT-STYLE STYLE TALLY Here is the file that builds the tables: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- Old Style CodeAOE Binding Cust Code Product Desc. B DUP XXXXX 01100234 AMERICAN MON AT DUP ZZZZZ 01100234 AMERICAN MON |
Code: |
FILE I701 OLD701 1 1360 A CUSTCODE 1 8 A STYLE 44 6 A VOIDED 125 1 A PLANT 237 4 A CUT 545 12 A OCCURS 3 BRANCH 433 5 A FILE ZSTYLES PARM-CUSTCODE 1 6 A PARM-STYLE 22 6 A PARM-CHNG-STYLE 34 8 A FILE O701 FB(0 0) NEW701 1 1360 A O-CHNG-STYLE 500 8 A *********************************************************************** * MAINLINE * *********************************************************************** JOB INPUT (I701 KEY (CUSTCODE, STYLE) + ZSTYLES KEY (PARM-CUSTCODE, PARM-STYLE)) IF MATCHED NEW701 = OLD701 O-CHNG-STYLE = PARM-CHNG-STYLE PUT O701 ELSE-IF I701 NEW701 = OLD701 O-CHNG-STYLE = ' ' PUT O701 END-IF /* |
Code: |
IF MATCHED NEW701 = OLD701 O-CHNG-STYLE = PARM-CHNG-STYLE PUT O701 ELSE IF I701 NEW701 = OLD701 O-CHNG-STYLE = ' ' PUT O701 END-IF END-IF |
Code: |
SORT I701 TO I701 USING (CUSTCODE, STYLE) SORT ZSTYLES TO ZSTYLES USING (PARM-CUSTCODE, PARM-STYLE) |
Code: |
FILE I701 OLD701 1 1360 A CUSTCODE 1 8 A STYLE 44 6 A VOIDED 125 1 A PLANT 237 4 A CUT 545 12 A OCCURS 3 BRANCH 433 5 A FILE ZSTYLES TABLE 500 ARG 01 06 A DESC 22 20 A FILE O701 FB(0 0) NEW701 1 1360 A O-CHNG-STYLE 500 8 A W-SRCH-CUST-CODE W 06 A W-PARM-DESC W 20 A W-PARM-STYLE W-PARM-DESC 06 A FILLER1 W-PARM-DESC +6 06 A W-CHNG-STYLE W-PARM-DESC +12 08 A *********************************************************************** * MAINLINE * *********************************************************************** JOB INPUT I701 W-SRCH-CUST-CODE = CUSTCODE W-PARM-DESC = ' ' SEARCH ZSTYLES WITH W-SRCH-CUST-CODE, GIVING W-PARM-DESC IF W-PARM-STYLE = STYLE NEW701 = OLD701 O-CHANG-STYLE = W-CHNG-STYLE ELSE NEW701 = OLD701 O-CHANG-STYLE = ' ' END-IF PUT O701 /* |
Code: |
FILE I701 OLD701 1 1360 A CUSTCODE 1 8 A STYLE 44 6 A FILE ZSTYLES PARM-STYLE 1 6 A PARM-CHNG-STYLE 22 6 A PARM-CUSTCODE 34 8 A FILE NEW701 FB(0 0) OLD701 1 1360 A CUSTCODE 1 8 A O-CHNG-STYLE 500 8 A ************************************************************* * MAINLINE ************************************************************* JOB INPUT (I701 KEY (CUSTCODE, STYLE) + ZSTYLES KEY (PARM-CUSTCODE, PARM-CHNG-STYLE)) IF MATCHED NEW701 = OLD701 O-CHNG-STYLE = PARM-CHNG-STYLE PUT O701 ELSE-IF I701 NEW701 = OLD701 O-CHNG-STYLE = ' ' PUT O701 END-IF /* |
Code: |
FILE I701 OLD701 1 1360 A CUSTCODE 1 8 A STYLE 44 6 A |
Code: |
FILE NEW701 FB(0 0) OLD701 1 1360 A CUSTCODE 1 8 A O-CHNG-STYLE 500 8 A |
Code: |
FILE O701 FB(0 0) NEW701 1 1360 A O-CHNG-STYLE 500 8 A |
Quote: |
The original jcl (which I cannot take credit for) changes all of the records. |
Code: |
JOB INPUT (ZSTYLES KEY (PARM-CUSTCODE, PARM-CHNG-STYLE) + I701 KEY (CUSTCODE, STYLE)) |
Code: |
JOB INPUT I701
W-SRCH-CUST-CODE = CUSTCODE W-PARM-DESC = ' ' SEARCH ZSTYLES WITH W-SRCH-CUST-CODE, GIVING W-PARM-DESC IF W-PARM-STYLE = STYLE NEW701 = OLD701 O-CHNG-STYLE = W-CHNG-STYLE ELSE NEW701 = OLD701 O-CHNG-STYLE = ' ' END-IF PUT O701 |
Code: |
Old Design New Design Cust Code
B AAXXX 91100124 VP5 BBXXX 91100197 AT CCXXX 91100235 DHB DDXXX 91100235 B CCXXX 91100235 B EEXXX 91107516 |
Code: |
91100124 000001 B
91100124 000225 AT 91100124 000303 VP5 91100124 004125 AW 91100124 033516 B 91100197 000006 B 91100197 000225 B 91100235 001125 AT 91100235 002125 B |
Code: |
91100124 000001 AAXXX
91100124 000225 AT 91100124 000303 VP5 91100124 004125 AW 91100124 033516 AAXXX 91100197 000006 B 91100197 000225 B 91100235 001125 CCXXX 91100235 002125 CCXXX |
Quote: |
Note: If your Files are not sorted then you need to add the following statments before your JOB statement in the easytrieve program. |
Code: |
SORT I701 TO I701 USING (CUSTCODE, STYLE) SORT ZSTYLES TO ZSTYLES USING (PARM-CUSTCODE, PARM-STYLE) |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours