cancel
Showing results for 
Search instead for 
Did you mean: 

'SO_NEW_DOCUMENT_ATT_SEND_API1' not working upto mark

Former Member
0 Kudos

Hi,

This is my code of send pdf as attachment. This code does not give any error but it does not send e-mail with attachment. Please tell me is there any mistake in code mostly at 'SO_NEW_DOCUMENT_ATT_SEND_API1' funtion module parameters.

REPORT ZTEST_LPO_MAILER.

Tables: PA0105.

DATA: LF_FM_NAME TYPE RS38L_FNAM.

DATA : V_ADRNR LIKE LFA1-ADRNR,

C_ADRNR LIKE KNA1-ADRNR,

STP1 LIKE T683S-STUNB,

STP2 LIKE T683S-STUN2,

WKBETR LIKE KONV-KBETR,

WKWERT LIKE KONV-KWERT,

LITEM LIKE EKKO-LPONR,

FLG TYPE C,

DATE1 LIKE SY-DATUM,

WPERNR LIKE PA0105-PERNR.

*DATA: W_DOC_CHNG TYPE SODOCCHGI1.

DATA: WA_CTRLOP TYPE SSFCTRLOP,

WA_OUTOPT TYPE SSFCOMPOP,

WA_STXH LIKE STXH.

DATA: T_OTFDATA TYPE SSFCRESCL,

T_PDF_TAB LIKE TLINE OCCURS 0 WITH HEADER LINE,

T_LINE LIKE TLINE OCCURS 0 WITH HEADER LINE.

DATA : T_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,

W_FILESIZE TYPE I,

W_BIN_FILESIZE TYPE I.

DATA: FNAME TYPE STRING,

FPATH TYPE STRING,

FULL_PATH TYPE STRING.

*OBJECTS TO SEND MAIL.

DATA : I_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,

I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

I_OBJBIN LIKE SOLIX OCCURS 0 WITH HEADER LINE,

I_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,

I_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,

W_OBJHEAD TYPE SOLI_TAB,

W_DOC_CHNG TYPE SODOCCHGI1,

W_BUFFER TYPe STRING. "TO CONVERT FROM 132 TO 255.

DATA : V_LINES_TXT TYPE I, V_LINES_BIN TYPE I.

SELECT-OPTIONS: MAILTO for PA0105-USRID_LONG NO INTERVALS.

WA_CTRLOP-GETOTF = 'X'.

WA_CTRLOP-NO_DIALOG = 'X'.

WA_OUTOPT-TDNOPREV = 'X'.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'ZZGBTESTPDF'

IMPORTING

FM_NAME = LF_FM_NAME.

CALL FUNCTION LF_FM_NAME " '/1BCDWB/SF00000136'

EXPORTING

CONTROL_PARAMETERS = WA_CTRLOP

OUTPUT_OPTIONS = WA_OUTOPT

USER_SETTINGS = 'X'

IMPORTING

JOB_OUTPUT_INFO = T_OTFDATA

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

T_OTF[] = T_OTFDATA-OTFDATA[].

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

MAX_LINEWIDTH = '132'

PDF_DELETE_OTFTAB = 'X'

IMPORTING

BIN_FILESIZE = W_BIN_FILESIZE

TABLES

OTF = T_OTF

LINES = T_PDF_TAB

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

OTHERS = 4.

  • CONVERT PDF FROM 132 TO 255.

CALL METHOD cl_gui_frontend_services=>FILE_SAVE_DIALOG

CHANGING

FILENAME = FNAME

PATH = FPATH

FULLPATH = FULL_PATH.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE = W_BIN_FILESIZE

FILENAME = FULL_PATH

FILETYPE = 'BIN'

TABLES

DATA_TAB = T_PDF_TAB

  • FIELDNAMES =

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

  • CONVERT PDF FROM 132 TO 255.

LOOP AT T_PDF_TAB.

  • REPLACING SPACE BY ~

TRANSLATE T_PDF_TAB USING ' ~'.

CONCATENATE W_BUFFER T_PDF_TAB INTO W_BUFFER.

ENDLOOP.

  • REPLACING ~ BY SPACE

TRANSLATE W_BUFFER USING '~ '.

DO.

I_RECORD = W_BUFFER.

  • APPENDING 255 CHARACTERS AS A RECORD

APPEND I_RECORD.

SHIFT W_BUFFER LEFT BY 255 PLACES.

IF W_BUFFER IS INITIAL.

EXIT.

ENDIF.

ENDDO.

REFRESH : I_RECLIST, I_OBJTXT, I_OBJBIN, I_OBJPACK.

CLEAR W_OBJHEAD.

  • OBJECT WITH PDF.

I_OBJBIN[] = I_RECORD[].

DESCRIBE TABLE I_OBJBIN LINES V_LINES_BIN.

    • MAIL TEXT TO BE FILLED UP HERE

SELECT SINGLE TDID TDSPRAS TDNAME TDOBJECT FROM STXH INTO

CORRESPONDING FIELDS OF WA_STXH

WHERE TDOBJECT ='TEXT' AND TDNAME = 'ZLPOMAILTEXT'.

IF SY-SUBRC = 0.

CALL FUNCTION 'READ_TEXT'

EXPORTING

  • CLIENT = SY-MANDT

ID = WA_STXH-TDID

LANGUAGE = WA_STXH-TDSPRAS

NAME = WA_STXH-TDNAME

OBJECT = WA_STXH-TDOBJECT

TABLES

LINES = T_LINE.

LOOP AT T_LINE.

I_OBJTXT = T_LINE-TDLINE.

APPEND I_OBJTXT.

ENDLOOP.

ENDIF.

DESCRIBE TABLE I_OBJTXT LINES V_LINES_TXT.

  • DOCUMENT INFORMATION.

W_DOC_CHNG-OBJ_NAME = 'SMARTFORM'.

W_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.

W_DOC_CHNG-OBJ_DESCR = 'PURCHASE ORDER NUMBER '.

W_DOC_CHNG-SENSITIVTY = 'F'. "FUNCTIONAL OBJECT

W_DOC_CHNG-DOC_SIZE = V_LINES_TXT * 255.

  • PACK TO MAIN BODY AS RAW.

  • OBJ. TO BE TRANSPORTED NOT IN BINARY FORM

CLEAR I_OBJPACK-TRANSF_BIN.

  • START LINE OF OBJECT HEADER IN TRANSPORT PACKET

I_OBJPACK-HEAD_START = 1.

  • NUMBER OF LINES OF AN OBJECT HEADER IN OBJECT PACKET

I_OBJPACK-HEAD_NUM = 0.

  • START LINE OF OBJECT CONTENTS IN AN OBJECT PACKET

I_OBJPACK-BODY_START = 1.

  • NUMBER OF LINES OF THE OBJECT CONTENTS IN AN OBJECT PACKET

I_OBJPACK-BODY_NUM = V_LINES_TXT.

  • CODE FOR DOCUMENT CLASS

I_OBJPACK-DOC_TYPE = 'RAW'.

APPEND I_OBJPACK.

  • PACKING AS PDF.

I_OBJPACK-TRANSF_BIN = 'X'.

I_OBJPACK-HEAD_START = 1.

I_OBJPACK-HEAD_NUM = 1.

I_OBJPACK-BODY_START = 1.

I_OBJPACK-BODY_NUM = V_LINES_BIN.

I_OBJPACK-DOC_TYPE = 'PDF'.

I_OBJPACK-OBJ_NAME = 'SMARTFORM'.

I_OBJPACK-OBJ_DESCR = 'PURCHASE ORDER.PDF'.

I_OBJPACK-DOC_SIZE = V_LINES_BIN * 255.

APPEND I_OBJPACK.

  • DOCUMENT INFORMATION.

CLEAR I_RECLIST.

CLEAR I_RECLIST[].

  • E-MAIL RECEIVERS.

SELECT SINGLE SMTP_ADDR INTO I_RECLIST-RECEIVER FROM ADR6 WHERE ADDRNUMBER EQ V_ADRNR.

I_RECLIST-EXPRESS = 'X'.

I_RECLIST-REC_TYPE = 'U'. "INTERNET ADDRESS

APPEND I_RECLIST.

  • SELECT SINGLE PERNR INTO WPERNR FROM PA0105 WHERE USRID EQ L_EKKO-ERNAM AND ENDDA GE SY-DATUM AND BEGDA LE SY-DATUM.

  • SELECT SINGLE USRID_LONG INTO I_RECLIST-RECEIVER FROM PA0105 WHERE PERNR EQ WPERNR AND SUBTY EQ '0010' AND

  • ENDDA GE SY-DATUM AND BEGDA LE SY-DATUM.

I_RECLIST-RECEIVER = 'gurprit_bhatia@yahoo.com'.

I_RECLIST-EXPRESS = 'X'.

I_RECLIST-REC_TYPE = 'U'. "INTERNET ADDRESS

I_RECLIST-COPY = 'X'. "CC MARKED FOR SENDING EMAIL

APPEND I_RECLIST.

LOOP AT MAILTO.

I_RECLIST-RECEIVER = MAILTO-LOW.

I_RECLIST-EXPRESS = 'X'.

I_RECLIST-REC_TYPE = 'U'. "INTERNET ADDRESS

I_RECLIST-COPY = 'X'. "CC MARKED FOR SENDING EMAIL

APPEND I_RECLIST.

ENDLOOP.

*

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = W_DOC_CHNG

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X'

  • IMPORTING

  • SENT_TO_ALL =

  • NEW_OBJECT_ID =

TABLES

PACKING_LIST = I_OBJPACK

OBJECT_HEADER = W_OBJHEAD

  • CONTENTS_BIN =

CONTENTS_TXT = I_OBJTXT

CONTENTS_HEX = I_OBJBIN

  • OBJECT_PARA =

  • OBJECT_PARB =

RECEIVERS = I_RECLIST

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

OTHERS = 8

.

IF SY-SUBRC eq 0.

WRITE 😕 'MAIL SENT SUCCESSFULLY...'.

ENDIF.

Help will be rewarded/

Accepted Solutions (1)

Accepted Solutions (1)

amit_khare
Active Contributor
0 Kudos

Check if the mail is visible in SBWP outbox..

If yes, then the problem is not with FM but it is with system configuration.

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

Is SY-SUBRC = 0 after execution of FM 'SO_NEW_DOCUMENT_ATT_SEND_API1'.

if it is 0 then write below code

IF SY-SUBRC = 0.
    SUBMIT rsconn01 WITH mode = '*' AND RETURN.
ENDIF.

<b>Reward Points for helpful answers</b>

Satish

Former Member
0 Kudos

Hi,

Execute SCOT Tcode .It will send mails to outbox.

Thanks

Phani

jaideeps
Advisor
Advisor
0 Kudos

hi,

kindly refer this thread = >

thanks

jaideep

*reward points if useful