You are on page 1of 5

7/29/2015

AnSAPConsultant:ABAPSendingemailwithpdfattachment

An SAP Consultant
HOME

ABAP

ALV

SMART FORMS

ADOBE FORMS

HR ABAP

WORKFLOW

WEB DYNPRO ABAP

Sunday, December 19, 2010

ABAP Sending email with pdf attachment

HCM

Follow by Email
Emailaddress...

We use function module SO_NEW_DOCUMENT_ATT_SEND_API1 to send mail with PDF attachment.

AnSAPConsultant

Steps in the program

1,270likes

Create classical report output


Print report using NEW-PAGE PRINT OFF statement. Output is sent to spool.

Liked

Concert spool to PDF using function moduleCONVERT_ABAPSPOOLJOB_2_PDF.


Youlikethis

Send mail using function moduleSO_NEW_DOCUMENT_ATT_SEND_API1.

Followers
REPORTZSEND_MAIL_WITH_PDF.
**
"Dataretrievalrelateddeclarations
**
"Variables
DATA:
G_SPOOL_NOTYPETSP01RQIDENT.
"Types
TYPES:
BEGINOFT_EMP_DAT,
PERNRTYPEPA0001PERNR,
PERSGTYPEPA0001PERSG,
PERSKTYPEPA0001PERSK,
PLANSTYPEPA0001PLANS,
STELLTYPEPA0001STELL,
ENDOFT_EMP_DAT.
"Workarea
DATA:
W_EMP_DATATYPET_EMP_DAT.
"Internaltables
DATA:
I_EMP_DATATYPESTANDARDTABLEOFT_EMP_DAT.
**
"Mailrelateddeclarations
**
"Variables
DATA:
G_SENT_TO_ALLTYPESONVFLAG,
G_TAB_LINESTYPEI.
"Types
TYPES:
T_DOCUMENT_DATATYPESODOCCHGI1,
T_PACKING_LISTTYPESOPCKLSTI1,
T_ATTACHMENTTYPESOLISTI1,
T_BODY_MSGTYPESOLISTI1,
T_RECEIVERSTYPESOMLRECI1,
T_PDFTYPETLINE.
"Workareas
DATA:
W_DOCUMENT_DATATYPET_DOCUMENT_DATA,
W_PACKING_LISTTYPET_PACKING_LIST,
W_ATTACHMENTTYPET_ATTACHMENT,
W_BODY_MSGTYPET_BODY_MSG,
W_RECEIVERSTYPET_RECEIVERS,
W_PDFTYPET_PDF.
"InternalTables
DATA:
I_DOCUMENT_DATATYPESTANDARDTABLEOFT_DOCUMENT_DATA,
I_PACKING_LISTTYPESTANDARDTABLEOFT_PACKING_LIST,
I_ATTACHMENTTYPESTANDARDTABLEOFT_ATTACHMENT,
I_BODY_MSGTYPESTANDARDTABLEOFT_BODY_MSG,
I_RECEIVERSTYPESTANDARDTABLEOFT_RECEIVERS,
I_PDFTYPESTANDARDTABLEOFT_PDF.
**
http://www.ansapconsultant.com/2010/12/abapsendingemailwithpdfattachment.html

Jointhissite
withGoogleFriendConnect

Members(53) More

Alreadyamember?Signin

Popular Posts
1

ABAPALVReportexamplewithsteps

ExecuteABAPReportusingSUBMIT
statement

ABAPStepbysteptutorialonSmartForms
TemplateNode

ABAPSendingemailwithpdfattachment

WebDynproABAPALVON_CLICKevent

ABAPDynamicWHEREclause

ABAPDownloadreportoutputasPDFfile

ABAPALVDemoprograms

SAPABAPCL_ABAP_CHAR_UTILITIES
classusage

10

WebdynproabapError/Successmessage
sampleprogram

Websites I follow
HTML/CSS/Javscript Generator
1/6

7/29/2015

AnSAPConsultant:ABAPSendingemailwithpdfattachment

"SelectionScreen
**
PARAMETERSP_MAILTYPECHAR120.
**
"Topofpage.
**
TOPOFPAGE.
PERFORMTOP_OF_PAGE.
**
"Startofselection.
**
STARTOFSELECTION.
PERFORMGET_DATA.
IFI_EMP_DATA[]ISINITIAL.
PERFORMTEST_DATA.
ENDIF.
PERFORMDO_PRINT_N_GET_SPOOLNO.

Easy CSS3 Generator


Digital Inspiration
Shout ME Loud
Twitter Feed

Web Dynpro ABAP Book

**
"Endofselection.
**
ENDOFSELECTION.
PERFORMSEND_MAIL.
*&*
*&Formtop_of_page
*&*
FORMTOP_OF_PAGE.
DATA:INC_COLNUMTYPEI.
ULINE.
INC_COLNUM=SYLINSZ60.
WRITE:/'Report:',SYREPID(18).
WRITEAT30(INC_COLNUM)SYTITLECENTERED.
INC_COLNUM=SYLINSZ20.
WRITE:ATINC_COLNUM'Page:',(11)SYPAGNORIGHTJUSTIFIED.
WRITE:/'Client:',SYMANDT.
INC_COLNUM=SYLINSZ20.
WRITE:ATINC_COLNUM'Date:',SYDATUM.
WRITE:/'User:',SYUNAME.
INC_COLNUM=SYLINSZ60.
WRITEAT30(INC_COLNUM)'CompanyConfidential'CENTERED.
INC_COLNUM=SYLINSZ20.
WRITE:ATINC_COLNUM'Time:',(10)SYUZEITRIGHTJUSTIFIED.
ULINE.
SKIP.
ULINEAT/(127).
WRITE:/SYVLINE,'pernr'COLORCOL_HEADING,13
SYVLINE,'persg'COLORCOL_HEADING,20
SYVLINE,'persk'COLORCOL_HEADING,26
SYVLINE,'plans'COLORCOL_HEADING,35
SYVLINE,'stell'COLORCOL_HEADING,46
SYVLINE.
ULINEAT/(46).
ENDFORM."top_of_page
*&*
"Formget_datafromPA0001
*&*
FORMGET_DATA.
SELECTPERNR
PERSG
PERSK
PLANS
STELL
FROMPA0001
INTOCORRESPONDINGFIELDSOFTABLEI_EMP_DATA
UPTO4ROWS.
ENDFORM."get_data
*&*
"Formdo_print_n_get_spoolno
*&*
FORMDO_PRINT_N_GET_SPOOLNO.
"DisplayOutput
LOOPATI_EMP_DATAINTOW_EMP_DATA.
ATFIRST.
PERFORMGET_PRINT_PARAMETERS.
ENDAT.
WRITE:/SYVLINE,W_EMP_DATAPERNR,13
SYVLINE,W_EMP_DATAPERSG,20
SYVLINE,W_EMP_DATAPERSK,26
SYVLINE,W_EMP_DATAPLANS,35
SYVLINE,W_EMP_DATASTELL,46
SYVLINE.
ULINEAT/(46).
ATLAST.
G_SPOOL_NO=SYSPONO.
NEWPAGEPRINTOFF.
CALLFUNCTION'ABAP4_COMMIT_WORK'.
http://www.ansapconsultant.com/2010/12/abapsendingemailwithpdfattachment.html

2/6

7/29/2015

AnSAPConsultant:ABAPSendingemailwithpdfattachment

ENDAT.
ENDLOOP.
ENDFORM."do_print_n_get_spoolno
*&*
"Formsend_mail
"
"PACKINGLIST
"Thistablerequiresinformationabouthowthedatainthe
"tablesOBJECT_HEADER,CONTENTS_BINandCONTENTS_TXTareto
"bedistributedtothedocumentsanditsattachments.Thefirst
"rowisforthedocument,thefollowingrowsareeachforone
"attachment.
*&*
FORMSEND_MAIL.
"Subjectofthemail.
W_DOCUMENT_DATAOBJ_NAME='MAIL_TO_HEAD'.
W_DOCUMENT_DATAOBJ_DESCR='RegardingMailProgrambySAPABAP'.
"Bodyofthemail
PERFORMBUILD_BODY_OF_MAIL
USING:SPACE,
'Hi,',
'Iamfine.Howareyou?Howareyoudoing?',
'Thisprogramhasbeencreatedtosendsimplemail',
'withSubject,BodywithAddressofthesender.',
'Regards,',
'Venkat.O,',
'SAPHRTechnicalConsultant.'.
"ConvertABAPSpooljobtoPDF
PERFORMCONVERT_SPOOL_2_PDFTABLESI_ATTACHMENT.
"WritePackingListforBody
DESCRIBETABLEI_BODY_MSGLINESG_TAB_LINES.
W_PACKING_LISTHEAD_START=1.
W_PACKING_LISTHEAD_NUM=0.
W_PACKING_LISTBODY_START=1.
W_PACKING_LISTBODY_NUM=G_TAB_LINES.
W_PACKING_LISTDOC_TYPE='RAW'.
APPENDW_PACKING_LISTTOI_PACKING_LIST.
CLEARW_PACKING_LIST.
"WritePackingListforAttachment
W_PACKING_LISTTRANSF_BIN='X'.
W_PACKING_LISTHEAD_START=1.
W_PACKING_LISTHEAD_NUM=1.
W_PACKING_LISTBODY_START=1.
DESCRIBETABLEI_ATTACHMENTLINESW_PACKING_LISTBODY_NUM.
W_PACKING_LISTDOC_TYPE='PDF'.
W_PACKING_LISTOBJ_DESCR='PDFAttachment'.
W_PACKING_LISTOBJ_NAME='PDF_ATTACHMENT'.
W_PACKING_LISTDOC_SIZE=W_PACKING_LISTBODY_NUM*255.
APPENDW_PACKING_LISTTOI_PACKING_LIST.
CLEARW_PACKING_LIST.
"Fillthedocumentdataandgetsizeofattachment
W_DOCUMENT_DATAOBJ_LANGU=SYLANGU.
READTABLEI_ATTACHMENTINTOW_ATTACHMENTINDEXG_TAB_LINES.
W_DOCUMENT_DATADOC_SIZE=(G_TAB_LINES1)*255+STRLEN(W_ATTACHMENT).
"ReceiversList.
W_RECEIVERSREC_TYPE='U'."Internetaddress
W_RECEIVERSRECEIVER=P_MAIL.
W_RECEIVERSCOM_TYPE='INT'.
W_RECEIVERSNOTIF_DEL='X'.
W_RECEIVERSNOTIF_NDEL='X'.
APPENDW_RECEIVERSTOI_RECEIVERS.
CLEAR:W_RECEIVERS.
"FunctionmoduletosendmailtoRecipients
CALLFUNCTION'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA=W_DOCUMENT_DATA
PUT_IN_OUTBOX='X'
COMMIT_WORK='X'
IMPORTING
SENT_TO_ALL=G_SENT_TO_ALL
TABLES
PACKING_LIST=I_PACKING_LIST
CONTENTS_BIN=I_ATTACHMENT
CONTENTS_TXT=I_BODY_MSG
RECEIVERS=I_RECEIVERS
EXCEPTIONS
TOO_MANY_RECEIVERS=1
DOCUMENT_NOT_SENT=2
DOCUMENT_TYPE_NOT_EXIST=3
OPERATION_NO_AUTHORIZATION=4
PARAMETER_ERROR=5
X_ERROR=6
ENQUEUE_ERROR=7
http://www.ansapconsultant.com/2010/12/abapsendingemailwithpdfattachment.html

3/6

7/29/2015

AnSAPConsultant:ABAPSendingemailwithpdfattachment

OTHERS=8.
IFSYSUBRC=0.
MESSAGEI303(ME)WITH'MailhasbeenSuccessfullySent.'.
ELSE.
WAITUPTO2SECONDS.
"ThisprogramstartstheSAPconnectsendprocess.
SUBMITRSCONN01WITHMODE='INT'
WITHOUTPUT='X'
ANDRETURN.
ENDIF.
ENDFORM."send_mail
*&*
"Formbuild_body_of_mail
*&*
FORMBUILD_BODY_OF_MAILUSINGL_MESSAGE.
W_BODY_MSG=L_MESSAGE.
APPENDW_BODY_MSGTOI_BODY_MSG.
CLEARW_BODY_MSG.
ENDFORM."build_body_of_mail
*&*
*&Formget_print_parameters
*&*
FORMGET_PRINT_PARAMETERS.
"Variables
DATA:
L_LAYTYPEPRI_PARAMSPAART,
L_LINESTYPEPRI_PARAMSLINCT,
L_COLSTYPEPRI_PARAMSLINSZ,
L_VALTYPEC.
*Types
TYPES:
T_PRIPARTYPEPRI_PARAMS,
T_ARCPARTYPEARC_PARAMS.
"Workareas
DATA:
LW_PRIPARTYPET_PRIPAR,
LW_ARCPARTYPET_ARCPAR.
L_LAY='X_65_132'.
L_LINES=65.
L_COLS=132.
"Read,determine,changespoolprintparametersandarchiveparameters
CALLFUNCTION'GET_PRINT_PARAMETERS'
EXPORTING
IN_ARCHIVE_PARAMETERS=LW_ARCPAR
IN_PARAMETERS=LW_PRIPAR
LAYOUT=L_LAY
LINE_COUNT=L_LINES
LINE_SIZE=L_COLS
NO_DIALOG='X'
IMPORTING
OUT_ARCHIVE_PARAMETERS=LW_ARCPAR
OUT_PARAMETERS=LW_PRIPAR
VALID=L_VAL
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND=1
INVALID_PRINT_PARAMS=2
INVALID_ARCHIVE_PARAMS=3
OTHERS=4.
IFL_VALNESPACEANDSYSUBRC=0.
LW_PRIPARPRREL=SPACE.
LW_PRIPARPRIMM=SPACE.
NEWPAGEPRINTON
NEWSECTION
PARAMETERSLW_PRIPAR
ARCHIVEPARAMETERSLW_ARCPAR
NODIALOG.
ENDIF.
ENDFORM."get_print_parameters
*&*
*&Formconvert_spool_2_pdf
*&*
FORMCONVERT_SPOOL_2_PDFTABLESL_ATTACHMENT.
"Variables
DATA:
L_NO_OF_BYTESTYPEI,
L_PDF_SPOOLIDLIKETSP01RQIDENT,
L_JOBNAMELIKETBTCJOBJOBNAME,
L_JOBCOUNTLIKETBTCJOBJOBCOUNT.
CALLFUNCTION'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID=G_SPOOL_NO
NO_DIALOG=''
IMPORTING
PDF_BYTECOUNT=L_NO_OF_BYTES
PDF_SPOOLID=L_PDF_SPOOLID
http://www.ansapconsultant.com/2010/12/abapsendingemailwithpdfattachment.html

4/6

7/29/2015

AnSAPConsultant:ABAPSendingemailwithpdfattachment

BTC_JOBNAME=L_JOBNAME
BTC_JOBCOUNT=L_JOBCOUNT
TABLES
PDF=I_PDF
EXCEPTIONS
ERR_NO_ABAP_SPOOLJOB=1
ERR_NO_SPOOLJOB=2
ERR_NO_PERMISSION=3
ERR_CONV_NOT_POSSIBLE=4
ERR_BAD_DESTDEVICE=5
USER_CANCELLED=6
ERR_SPOOLERROR=7
ERR_TEMSEERROR=8
ERR_BTCJOB_OPEN_FAILED=9
ERR_BTCJOB_SUBMIT_FAILED=10
ERR_BTCJOB_CLOSE_FAILED=11
OTHERS=12.
CASESYSUBRC.
WHEN0.
WHEN1.
MESSAGES000(0K)WITH'NoABAPSpoolJob'.
EXIT.
WHEN2.
MESSAGES000(0K)WITH'SpoolNumberdoesnotexist'.
EXIT.
WHEN3.
MESSAGES000(0K)WITH'Nopermissionforspool'.
EXIT.
WHENOTHERS.
MESSAGES000(0K)
WITH'ErrorinFunctionCONVERT_ABAPSPOOLJOB_2_PDF'.
EXIT.
ENDCASE.
CALLFUNCTION'SX_TABLE_LINE_WIDTH_CHANGE'
EXPORTING
LINE_WIDTH_SRC=134
LINE_WIDTH_DST=255
TABLES
CONTENT_IN=I_PDF
CONTENT_OUT=L_ATTACHMENT
EXCEPTIONS
ERR_LINE_WIDTH_SRC_TOO_LONG=1
ERR_LINE_WIDTH_DST_TOO_LONG=2
ERR_CONV_FAILED=3
OTHERS=4.
IFSYSUBRCNE0.
MESSAGES000(0K)WITH'ConversionFailed'.
EXIT.
ENDIF.
ENDFORM."convert_spool_2_pdf
*&*
*&Formtest_data
*&*
FORMTEST_DATA.
DO10TIMES.
W_EMP_DATAPERNR=SYINDEX.
W_EMP_DATAPERSG='2'.
W_EMP_DATAPERSK='93'.
W_EMP_DATAPLANS='99999999'.
W_EMP_DATASTELL='31414144'.
APPENDW_EMP_DATATOI_EMP_DATA.
CLEARW_EMP_DATA.
ENDDO.
ENDFORM."test_data

Recommend this on Google

1 comment:
Anonymous July 9, 2013 at 10:04 PM
Hi !
Nothing is better than your site !

Kumar from Germany


Reply

http://www.ansapconsultant.com/2010/12/abapsendingemailwithpdfattachment.html

5/6

You might also like