on 11-19-2007 6:07 AM
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/
Check if the mail is visible in SBWP outbox..
If yes, then the problem is not with FM but it is with system configuration.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Execute SCOT Tcode .It will send mails to outbox.
Thanks
Phani
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.