Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Error while sending email to external mail - Urgent

Former Member
0 Kudos

Hi All,

I am getting error while sending email with attachement. The Error code is 02.

I am not able to identify the error. bold Please help me in solving this problem.

Is it anything wrong with the code or Any Configuration with SCOT/SOST.bold

the code i am using is :

REPORT YVR_F MESSAGE-ID XX .

TABLES : EDIDC, EDIDS, EDPAR.

----


----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

PARAMETERS : P_STATUS LIKE EDIDC-STATUS DEFAULT '51'.

SELECT-OPTIONS : S_DIRECT FOR EDIDC-DIRECT,

S_MESTYP FOR EDIDC-MESTYP,

S_CREDAT FOR EDIDC-CREDAT.

SELECTION-SCREEN END OF BLOCK B1 .

----


PARAMETER: P_EMAIL LIKE SOMLRECI1-RECEIVER,

P_SENDER LIKE SOMLRECI1-RECEIVER no-display,

P_DELSPL AS CHECKBOX,

P_ONLINE NO-DISPLAY.

----


DATA : TB_EDIDC LIKE STANDARD TABLE OF EDIDC INITIAL SIZE 0 WITH HEADER

LINE.

DATA : TB_EDPAR LIKE STANDARD TABLE OF EDPAR INITIAL SIZE 0 WITH HEADER

LINE.

DATA : TB_KNA1 LIKE STANDARD TABLE OF KNA1 INITIAL SIZE 0 WITH HEADER

LINE.

DATA : TB_ADRC LIKE STANDARD TABLE OF ADRC INITIAL SIZE 0 WITH HEADER

LINE.

DATA: INT_PDF TYPE TABLE OF TLINE WITH HEADER LINE.

DATA : BEGIN OF TB_ED OCCURS 0,

SNDPRN LIKE EDIDC-SNDPRN,

LOC LIKE ADRC-BUILDING,

DOCNUM LIKE EDIDC-DOCNUM,

IDOCTP LIKE EDIDC-IDOCTP,

MESTYP LIKE EDIDC-MESTYP,

DIRECT LIKE EDIDC-DIRECT,

CREDAT LIKE EDIDC-CREDAT,

STATUS LIKE EDIDC-STATUS,

END OF TB_ED.

DATA: IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0

WITH HEADER LINE.

DATA: IT_ATTACH TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0

WITH HEADER LINE.

  • Job Runtime Parameters

DATA: GD_EVENTID LIKE TBTCM-EVENTID,

GD_EVENTPARM LIKE TBTCM-EVENTPARM,

GD_EXTERNAL_PROGRAM_ACTIVE LIKE TBTCM-XPGACTIVE,

GD_JOBCOUNT LIKE TBTCM-JOBCOUNT,

GD_JOBNAME LIKE TBTCM-JOBNAME,

GD_STEPCOUNT LIKE TBTCM-STEPCOUNT,

GD_ERROR TYPE SY-SUBRC,

GD_RECIEVER TYPE SY-SUBRC.

DATA: W_RECSIZE TYPE I,

W_SPOOL_NR LIKE SY-SPONO.

  • %_print LIKE pri_params.

DATA: GD_SUBJECT LIKE SODOCCHGI1-OBJ_DESCR,

IT_MESS_BOD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

IT_MESS_ATT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

GD_SENDER_TYPE LIKE SOEXTRECI1-ADR_TYP,

GD_ATTACHMENT_DESC TYPE SO_OBJ_NAM,

GD_ATTACHMENT_NAME TYPE SO_OBJ_DES.

  • Spool to PDF conversions

DATA: GD_SPOOL_NR LIKE TSP01-RQIDENT,

GD_DESTINATION LIKE RLGRAP-FILENAME,

GD_BYTECOUNT LIKE TST01-DSIZE,

GD_BUFFER TYPE STRING.

  • Binary store for PDF

DATA: BEGIN OF IT_PDF_OUTPUT OCCURS 0.

INCLUDE STRUCTURE TLINE.

DATA: END OF IT_PDF_OUTPUT.

DATA: GD_RECSIZE TYPE I.

CONSTANTS: C_DEV LIKE SY-SYSID VALUE 'DEV',

C_NO(1) TYPE C VALUE ' ',

C_DEVICE(4) TYPE C VALUE 'LOCL'.

DATA: T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,

T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

W_CNT TYPE I,

W_SENT_ALL(1) TYPE C,

W_DOC_DATA LIKE SODOCCHGI1.

DATA : MSTR_PRINT_PARMS LIKE PRI_PARAMS,

MC_VALID,

P_REPID LIKE SY-REPID,

WF_ID LIKE TSP01-RQIDENT,

LOC_BYTECOUNT TYPE I.

----


*start-of-selection.

MSTR_PRINT_PARMS-PDEST = 'LOCL'.

P_REPID = SY-REPID.

CALL FUNCTION 'GET_PRINT_PARAMETERS'

EXPORTING

  • authority= ' '

COPIES = '1'

COVER_PAGE = SPACE

DATA_SET = SPACE

DEPARTMENT = SPACE

DESTINATION = 'LP01'

EXPIRATION = '1'

IMMEDIATELY = 'X'

LAYOUT = 'X_65_132'

MODE = SPACE

NEW_LIST_ID = 'X'

NO_DIALOG = 'X'

USER = SY-UNAME

IMPORTING

OUT_PARAMETERS = MSTR_PRINT_PARMS

VALID = MC_VALID

EXCEPTIONS

ARCHIVE_INFO_NOT_FOUND = 1

INVALID_PRINT_PARAMS = 2

INVALID_ARCHIVE_PARAMS = 3

OTHERS = 4.

  • SUBMIT (P_REPID) TO SAP-SPOOL WITHOUT SPOOL DYNPRO

  • SPOOL PARAMETERS MSTR_PRINT_PARMS.

    • AND RETURN.

NEW-PAGE PRINT ON NO DIALOG PARAMETERS

MSTR_PRINT_PARMS.

perform data.

****

NEW-PAGE PRINT OFF. "This marks the end of the screen for which the

*SPOOL NO WAS GENERATED.

WF_ID = SY-SPONO.

*converting spool to pdf

CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'

EXPORTING

SRC_SPOOLID = WF_ID "SPOOL NUMBER

NO_DIALOG = SPACE

PDF_DESTINATION = 'X'

IMPORTING

PDF_BYTECOUNT =

LOC_BYTECOUNT "NUMBER OF BYTES TRANSFERRED

TABLES

PDF = INT_PDF "TABLE FOR PDF REPORT

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.

*CALL FUNCTION 'DOWNLOAD'

*EXPORTING

*bin_filesize = loc_bytecount "NO. OF BYTES

*filename = 'C:/EMAILPDF.PDF'

*filetype = 'BIN'

**IMPORTING

**act_filename = loc_filename

*TABLES

*data_tab = int_pdf.

IF P_DELSPL EQ 'X'.

PERFORM DELETE_SPOOL.

ENDIF.

----


  • Transfer the 132-long strings to 255-long strings

LOOP AT INT_PDF.

TRANSLATE INT_PDF USING ' ~'.

CONCATENATE GD_BUFFER INT_PDF INTO GD_BUFFER.

ENDLOOP.

TRANSLATE GD_BUFFER USING '~ '.

DO.

IT_MESS_ATT = GD_BUFFER.

APPEND IT_MESS_ATT.

SHIFT GD_BUFFER LEFT BY 255 PLACES.

IF GD_BUFFER IS INITIAL.

EXIT.

ENDIF.

ENDDO.

DESCRIBE TABLE IT_MESS_ATT LINES GD_RECSIZE.

CHECK GD_RECSIZE > 0.

PERFORM SENDMAIL USING P_EMAIL..

&----


*& Form sendmail

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SENDMAIL USING P_EMAIL.

.

CHECK NOT ( P_EMAIL IS INITIAL ).

REFRESH IT_MESS_BOD.

  • Default subject matter

GD_SUBJECT = 'Subject'.

GD_ATTACHMENT_DESC = 'IDOC LIST'.

  • CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.

IT_MESS_BOD = 'List Of Failed Idocs'.

APPEND IT_MESS_BOD.

IT_MESS_BOD = 'List Of Failed Idocs'.

APPEND IT_MESS_BOD.

  • If no sender specified - default blank

IF P_SENDER EQ SPACE.

GD_SENDER_TYPE = SPACE.

ELSE.

GD_SENDER_TYPE = 'INT'.

ENDIF.

  • Send file by email as .xls speadsheet

PERFORM SEND_FILE_AS_EMAIL_ATTACHMENT

TABLES IT_MESS_BOD

IT_MESS_ATT

USING P_EMAIL

'Document attachment'

'PDF'

GD_ATTACHMENT_NAME

GD_ATTACHMENT_DESC

P_SENDER

GD_SENDER_TYPE

CHANGING GD_ERROR

GD_RECIEVER.

ENDFORM. " sendmail

&----


*& Form DELETE_SPOOL

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DELETE_SPOOL.

DATA: LD_SPOOL_NR TYPE TSP01_SP0R-RQID_CHAR.

LD_SPOOL_NR = WF_ID. "GD_SPOOL_NR.

CHECK P_DELSPL <> C_NO.

CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'

EXPORTING

SPOOLID = LD_SPOOL_NR.

ENDFORM. " DELETE_SPOOL

&----


*& Form SEND_FILE_AS_EMAIL_ATTACHMENT

&----


  • text

----


  • -->P_IT_MESS_BOD text

  • -->P_IT_MESS_ATT text

  • -->P_P_EMAIL text

  • -->P_0846 text

  • -->P_0847 text

  • -->P_GD_ATTACHMENT_NAME text

  • -->P_GD_ATTACHMENT_DESC text

  • -->P_P_SENDER text

  • -->P_GD_SENDER_TYPE text

  • <--P_GD_ERROR text

  • <--P_GD_RECIEVER text

----


FORM SEND_FILE_AS_EMAIL_ATTACHMENT TABLES IT_MESSAGE

IT_ATTACH

USING P_EMAIL

P_MTITLE

P_FORMAT

P_FILENAME

P_ATTDESCRIPTION

P_SENDER_ADDRESS

P_SENDER_ADDRES_TYPE

CHANGING P_ERROR

P_RECIEVER.

DATA: LD_ERROR TYPE SY-SUBRC,

LD_RECIEVER TYPE SY-SUBRC,

LD_MTITLE LIKE SODOCCHGI1-OBJ_DESCR,

LD_EMAIL LIKE SOMLRECI1-RECEIVER,

LD_FORMAT TYPE SO_OBJ_TP ,

LD_ATTDESCRIPTION TYPE SO_OBJ_NAM ,

LD_ATTFILENAME TYPE SO_OBJ_DES ,

LD_SENDER_ADDRESS LIKE SOEXTRECI1-RECEIVER,

LD_SENDER_ADDRESS_TYPE LIKE SOEXTRECI1-ADR_TYP,

LD_RECEIVER LIKE SY-SUBRC.

DATA: T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,

T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

W_CNT TYPE I,

W_SENT_ALL(1) TYPE C,

W_DOC_DATA LIKE SODOCCHGI1.

LD_EMAIL = P_EMAIL.

LD_MTITLE = P_MTITLE.

LD_FORMAT = P_FORMAT.

LD_ATTDESCRIPTION = P_ATTDESCRIPTION.

LD_ATTFILENAME = P_FILENAME.

LD_SENDER_ADDRESS = P_SENDER.

LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.

  • Fill the document data.

W_DOC_DATA-DOC_SIZE = 1.

  • Populate the subject/generic message attributes

W_DOC_DATA-OBJ_LANGU = SY-LANGU.

W_DOC_DATA-OBJ_NAME = 'SAPRPT'.

W_DOC_DATA-OBJ_DESCR = LD_MTITLE .

W_DOC_DATA-SENSITIVTY = 'F'.

  • Fill the document data and get size of attachment

CLEAR W_DOC_DATA.

READ TABLE IT_ATTACH INDEX W_CNT.

W_DOC_DATA-DOC_SIZE =

( W_CNT - 1 ) * 255 + STRLEN( IT_ATTACH ).

W_DOC_DATA-OBJ_LANGU = SY-LANGU.

W_DOC_DATA-OBJ_NAME = 'SAPRPT'.

W_DOC_DATA-OBJ_DESCR = LD_MTITLE.

W_DOC_DATA-SENSITIVTY = 'F'.

CLEAR T_ATTACHMENT.

REFRESH T_ATTACHMENT.

T_ATTACHMENT[] = IT_ATTACH[].

  • Describe the body of the message

CLEAR T_PACKING_LIST.

REFRESH T_PACKING_LIST.

T_PACKING_LIST-TRANSF_BIN = SPACE.

T_PACKING_LIST-HEAD_START = 1.

T_PACKING_LIST-HEAD_NUM = 0.

T_PACKING_LIST-BODY_START = 1.

DESCRIBE TABLE IT_MESSAGE LINES T_PACKING_LIST-BODY_NUM.

T_PACKING_LIST-DOC_TYPE = 'RAW'.

APPEND T_PACKING_LIST.

  • Create attachment notification

T_PACKING_LIST-TRANSF_BIN = 'X'.

T_PACKING_LIST-HEAD_START = 1.

T_PACKING_LIST-HEAD_NUM = 1.

T_PACKING_LIST-BODY_START = 1.

DESCRIBE TABLE T_ATTACHMENT LINES T_PACKING_LIST-BODY_NUM.

T_PACKING_LIST-DOC_TYPE = LD_FORMAT.

T_PACKING_LIST-OBJ_DESCR = LD_ATTDESCRIPTION.

T_PACKING_LIST-OBJ_NAME = LD_ATTFILENAME.

T_PACKING_LIST-DOC_SIZE = T_PACKING_LIST-BODY_NUM * 255.

APPEND T_PACKING_LIST.

  • Add the recipients email address

CLEAR T_RECEIVERS.

REFRESH T_RECEIVERS.

T_RECEIVERS-RECEIVER = p_EMAIL.

T_RECEIVERS-REC_TYPE = 'U'.

T_RECEIVERS-COM_TYPE = 'INT'.

T_RECEIVERS-NOTIF_DEL = 'X'.

T_RECEIVERS-NOTIF_NDEL = 'X'.

APPEND T_RECEIVERS.

DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.

W_SENT_ALL = 'X'.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = W_DOC_DATA

PUT_IN_OUTBOX = 'X'

  • SENDER_ADDRESS = LD_SENDER_ADDRESS

  • SENDER_ADDRESS_TYPE = LD_SENDER_ADDRESS_TYPE

COMMIT_WORK = 'X'

IMPORTING

SENT_TO_ALL = W_SENT_ALL

TABLES

PACKING_LIST = T_PACKING_LIST

object_header = objhead

CONTENTS_BIN = T_ATTACHMENT

CONTENTS_TXT = IT_MESSAGE

RECEIVERS = T_RECEIVERS

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

OPERATION_NO_AUTHORIZATION = 4

OTHERS = 99.

*

IF SY-SUBRC NE 0.

MESSAGE E000 WITH 'Error occurred while sending'.

ELSE.

MESSAGE I000 WITH 'The document was sent'.

ENDIF.

ENDFORM. " SEND_FILE_AS_EMAIL_ATTACHMENT

*&----


&----


*& Form data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data.

SELECT SNDPRN

DOCNUM

IDOCTP

MESTYP

DIRECT

CREDAT

STATUS

FROM EDIDC

INTO CORRESPONDING FIELDS

OF TABLE TB_EDIDC

WHERE STATUS = P_STATUS

AND MESTYP IN S_MESTYP

AND DIRECT IN S_DIRECT

AND CREDAT IN S_CREDAT.

SELECT KUNNR

INPNR

FROM EDPAR

INTO CORRESPONDING FIELDS

OF TABLE TB_EDPAR

FOR ALL ENTRIES IN TB_EDIDC

WHERE KUNNR = TB_EDIDC-SNDPRN.

SELECT KUNNR

ADRNR

FROM KNA1

INTO CORRESPONDING FIELDS

OF TABLE TB_KNA1

FOR ALL ENTRIES IN TB_EDPAR

WHERE KUNNR = TB_EDPAR-INPNR.

SELECT ADDRNUMBER

BUILDING

FROM ADRC

INTO CORRESPONDING FIELDS

OF TABLE TB_ADRC

FOR ALL ENTRIES IN TB_KNA1

WHERE ADDRNUMBER = TB_KNA1-ADRNR.

LOOP AT TB_EDIDC WHERE STATUS = P_STATUS

AND MESTYP IN S_MESTYP

AND DIRECT IN S_DIRECT

AND CREDAT IN S_CREDAT.

.

TB_ED-SNDPRN = TB_EDIDC-SNDPRN.

TB_ED-DOCNUM = TB_EDIDC-DOCNUM.

TB_ED-IDOCTP = TB_EDIDC-IDOCTP.

TB_ED-MESTYP = TB_EDIDC-MESTYP.

TB_ED-DIRECT = TB_EDIDC-DIRECT.

TB_ED-CREDAT = TB_EDIDC-CREDAT.

TB_ED-STATUS = TB_EDIDC-STATUS.

READ TABLE TB_EDPAR WITH KEY KUNNR = TB_EDIDC-SNDPRN.

READ TABLE TB_KNA1 WITH KEY KUNNR = TB_EDPAR-INPNR.

READ TABLE TB_ADRC WITH KEY ADDRNUMBER = TB_KNA1-ADRNR.

TB_ED-LOC = TB_ADRC-BUILDING.

APPEND TB_ED.

ENDLOOP.

WRITE :/02 'CustomerNo',

15 'Location Code',

30 'Idoc Number',

55 'Basic Type',

70 'Message Type',

95 'Direction',

110 'Received Date',

130 'Status'.

ULINE.

LOOP AT TB_ED.

WRITE :/02 TB_ED-SNDPRN,

15 TB_ED-LOC,

30 TB_ED-DOCNUM,

55 TB_ED-IDOCTP,

70 TB_ED-MESTYP,

95 TB_ED-DIRECT,

110 TB_ED-CREDAT,

130 TB_ED-STATUS.

ENDLOOP.

ENDFORM. " data

Kindly help me in solving the issue.

Thanks in advance.

Suki.

3 REPLIES 3

former_member404244
Active Contributor
0 Kudos

Hi,

Check the below link..

http://www.sapdev.co.uk/reporting/email/emailhome.htm

Regards,

Nagaraj

0 Kudos

HI ,

i want to know what could be the reason for the ERROR 02 ( sy-subrc = 2 ) .Document not sent.

Is there any thing wrong with my code?

Kindly help.

Thanks.

Suki.

0 Kudos

Hi,

Check in transaction SCOT. If your mail is in error status in SCOT, you can assure that there is no problem with your code. If your message has not reached till SCOT, then the problem will be with the code.

If the mail is there in scot with error status tell the BASIS to configure it. I feel this could be the problem.

Regards,

Renjith Michael.