Hi. I have an easy one (I hope)... I'm using SORT to build email notification cards from a control totals file. In my OUTREC BUILD statement, I'm trying to left justify input fields that also had a custom edit mask applied. So I coded the following:
One difference: I'm building multiple out records from one input record. According to the manual, I need to use the the BUILD operation of OUTFIL - not OUTREC. So here's the solution...
Input: A single-record file with a value that tells me who needs to receive the email in first three bytes. Also contains confirmation totals:
Code:
BBB10000000600000050097115940
DFSORT Statements:
Code:
OPTION COPY
INREC IFTHEN=(WHEN=(1,3,CH,EQ,C'AAA'),
BUILD=(1:1,12,
13:13,07,ZD,EDIT=(I,III,IIT), *** apply edit masking to count
22:20,10,ZD,EDIT=($II,III,IIT.TT), *** edit masking for amount
36:C'AAA@MYSERVER.COM')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'BBB'),
BUILD=(1:1,12,
13:13,07,ZD,EDIT=(I,III,IIT),
22:20,10,ZD,EDIT=($II,III,IIT.TT),
36:C'BBB@AAA@MYSERVER.COM')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'CCC'),
BUILD=(1:1,12,
13:13,07,ZD,EDIT=(I,III,IIT),
22:20,10,ZD,EDIT=($II,III,IIT.TT),
36:C'CCC@AAA@MYSERVER.COM')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'DDD'),
BUILD=(1:1,12,
13:13,07,ZD,EDIT=(I,III,IIT),
22:20,10,ZD,EDIT=($II,III,IIT.TT),
36:C'DDD@AAA@MYSERVER.COM')),
IFTHEN=(WHEN=(1,3,CH,EQ,C'EEE'),
BUILD=(1:1,12,
13:13,07,ZD,EDIT=(I,III,IIT),
22:20,10,ZD,EDIT=($II,III,IIT.TT),
36:C'EEE@AAA@MYSERVER.COM'))
OUTFIL BUILD=(1:C'HELO AAA@MYSERVER.COM',/,
C'MAIL FROM:<ME@AAA@MYSERVER.COM>',/,
C'RCPT TO:<',10:36,29,/, ** last field in record after INREC operation
C'DATA',/,
C'FROM: MY DEPARTMENT',/,
C'TO: ',5:1,3,8:C' THEIR DEPARTMENT',/,
C'SUBJECT:DEPOSITS CONFIRMATION',/,
C'MIME-VERSION: 1.0',/,
C'CONTENT-TYPE: MULTIPART/MIXED; BOUNDARY="SIMPLE BOUNDARY"',/,
C'--SIMPLE BOUNDARY',/,
C'CONTENT-TYPE: TEXT/PLAIN; CHARSET="US-ASCII"',2/,
C' DEPOSIT CUT: ',18:4,2,/,
C' DEPOSIT COUNT: ',18:13,9,JFY=(SHIFT=LEFT),/, *** left justify count
C' TOTAL AMOUNT: ',18:22,14,JFY=(SHIFT=LEFT),/, *** left justify amount
C'--SIMPLE BOUNDARY',2/)
Output (Email cards to be gener'd to SMTP output class for email):
Code:
HELO MYSERVER.COM
MAIL FROM:<ME@MYSERVER.COM>
RCPT TO:<BBB@MYSERVER.COM
DATA
FROM: MY DEPARTMENT
TO: THEIR DEPARTMENT
SUBJECT: DEPOSITS CONFIRMATION
MIME-VERSION: 1.0
CONTENT-TYPE: MULTIPART/MIXED; BOUNDARY="SIMPLE BOUNDARY"
--SIMPLE BOUNDARY
CONTENT-TYPE: TEXT/PLAIN; CHARSET="US-ASCII"