AS/400 fans only ' How to send a DB2 file per Email as CSV attachment




#IBMiSample

A simple CMD and CLP to send a DB2 file as CSV attachment. 


                                                                         
/************************************/ 
SNDCSV.CMD

             CMD        PROMPT('Send DB2 file as CSV attachm.')
/* COMMAND PROCESSING PROGRAM IS: SNDCSVCL */
             PARM       KWD(SNDFIL) TYPE(*CHAR) LEN(10) MIN(1) PROMPT('DB2 +
                          file to send as CSV')
             PARM       KWD(LIBR00) TYPE(*CHAR) LEN(10) PROMPT('Library') +
                          DFT(*LIBL)
             PARM       KWD(MAIL00) TYPE(*CHAR) LEN(50) MIN(1) PROMPT(' +
                          Email destination address')
             PARM       KWD(SUBJCT) TYPE(*CHAR) LEN(100) MIN(1) PROMPT(' +
                          Email subject')
             PARM       KWD(BODY00) TYPE(*CHAR) LEN(500) MIN(1) PROMPT(' +
                          Email body')
/************************************/ 

Compile this CMD source with:
CRTCMD CMD(myLib/SNDCSV) PGM(myLib/SNDCSVCL) SRCFILE(myLib/mySourceFile) SRCMBR(SNDCSV)  







/************************************/
SNDCSVCL.CLP

             PGM        PARM(&SNDFIL &LIBR00 &MAIL00 &SUBJCT &BODY00)

             DCL        VAR(&SNDFIL) TYPE(*CHAR) LEN(010)
             DCL        VAR(&LIBR00) TYPE(*CHAR) LEN(010)
             DCL        VAR(&MAIL00) TYPE(*CHAR) LEN(050)
             DCL        VAR(&SUBJCT) TYPE(*CHAR) LEN(100)
             DCL        VAR(&BODY00) TYPE(*CHAR) LEN(500)
             DCL        VAR(&ATTACH) TYPE(*CHAR) LEN(050)  VALUE(' ')

             CRTDIR     DIR('/CSV')
             MONMSG     MSGID(CPF0000)

             CHGVAR     VAR(&MAIL00) VALUE(%TRIM(&MAIL00))
             CHGVAR     VAR(&ATTACH) VALUE('/CSV/' *CAT %TRIM(&SNDFIL) +
                          *CAT '.CSV')
             CPYTOIMPF  FROMFILE(&LIBR00/&SNDFIL) TOSTMF(&ATTACH) +
                          STMFCCSID(*PCASCII) RCDDLM(*CRLF) FLDDLM(';')
             SNDSMTPEMM RCP(&MAIL00) SUBJECT(&SUBJCT) NOTE(&BODY00) +
                          ATTACH((&ATTACH))
             RMVLNK     OBJLNK(&ATTACH)
             RMVDIR     DIR('/CSV')
             ENDPGM
/************************************/


Compile this CLP source with:
CRTCLPGM PGM(myLib/SNDCSVCL) SRCFILE(myLib/mySourceFile) SRCMBR(SNDCSVCL)

 
Now let's try the command. Type:
SNDCSV (F4)




That's it.


 

I appreciate all the comments made on this blog.




Comments

  1. Hi Aldo, First time on your website. Thank you for the help. I've downloaded and tested on my end. I don't understand why the .csv file only uses Column A for the entire record layout. Your thoughts?

    ReplyDelete
    Replies
    1. The FLDDLM should be ',' instead of ';'.

      Delete

Post a Comment

Popular posts from this blog

IBMi (AS400) fans only ‘ Memories (IBM Coding Forms)

IBMi (AS400) fans only ' SQLCODE values: Dear readers, unleash your suggestions!