cancel
Showing results for 
Search instead for 
Did you mean: 

Sending the mail through Smartform

Former Member
0 Kudos

Hello All,

This is the function module used to send a mail from the smartform----


"SSFCONVERT_OTF_AND_MAIL" .

Can you please tell me the values for the required parameters from this function module.

Importing parameters for MAIL_SENDER

OBJTYPE

OBJKEY

DESCRIBE

What are the values to be passed for these parameters.

We have only option for printing the smartform. I have to send this even to mail. How can i send this.

<REMOVED BY MODERATOR>

Thanks,

Karan

Edited by: Alvaro Tejada Galindo on Jun 5, 2008 10:37 AM

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Please check this link

https://www.sdn.sap.com/irj/sdn/wiki

*&---------------------------------------------------------------------* 
*& Report ZTEST_PDF_MAIL 
*& 
*&---------------------------------------------------------------------*
REPORT ZTEST_NREDDY_PDF_MAIL.
* Internal Table declarations
DATA: I_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE, 
I_TLINE TYPE TABLE OF TLINE WITH HEADER LINE, 
I_RECEIVERS TYPE TABLE OF SOMLRECI1 WITH HEADER LINE, 
I_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
* Objects to send mail.
I_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE, 
I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE, 
I_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE, 
I_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
* Work Area declarations
WA_OBJHEAD TYPE SOLI_TAB, 
W_CTRLOP TYPE SSFCTRLOP, 
W_COMPOP TYPE SSFCOMPOP, 
W_RETURN TYPE SSFCRESCL, 
WA_DOC_CHNG TYPE SODOCCHGI1, 
W_DATA TYPE SODOCCHGI1, 
WA_BUFFER TYPE STRING, "To convert from 132 to 255
* Variables declarations
V_FORM_NAME TYPE RS38L_FNAM, 
V_LEN_IN LIKE SOOD-OBJLEN, 
V_LEN_OUT LIKE SOOD-OBJLEN, 
V_LEN_OUTN TYPE I, 
V_LINES_TXT TYPE I, 
V_LINES_BIN TYPE I. 
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' 
EXPORTING 
FORMNAME = 'ZTEST' 
IMPORTING 
FM_NAME = V_FORM_NAME 
EXCEPTIONS 
NO_FORM = 1 
NO_FUNCTION_MODULE = 2 
OTHERS = 3. 
IF SY-SUBRC <> 0. 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF. 
W_CTRLOP-GETOTF = 'X'. 
W_CTRLOP-NO_DIALOG = 'X'. 
W_COMPOP-TDNOPREV = 'X'. 
CALL FUNCTION V_FORM_NAME 
EXPORTING 
CONTROL_PARAMETERS = W_CTRLOP 
OUTPUT_OPTIONS = W_COMPOP 
USER_SETTINGS = 'X' 
IMPORTING 
JOB_OUTPUT_INFO = W_RETURN 
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. 
I_OTF[] = W_RETURN-OTFDATA[]. 
CALL FUNCTION 'CONVERT_OTF' 
EXPORTING 
FORMAT = 'PDF' 
MAX_LINEWIDTH = 132 
IMPORTING 
BIN_FILESIZE = V_LEN_IN 
TABLES 
OTF = I_OTF 
LINES = I_TLINE 
EXCEPTIONS 
ERR_MAX_LINEWIDTH = 1 
ERR_FORMAT = 2 
ERR_CONV_NOT_POSSIBLE = 3 
OTHERS = 4. 
IF SY-SUBRC <> 0. 
ENDIF. 
LOOP AT I_TLINE. 
TRANSLATE I_TLINE USING '~'. 
CONCATENATE WA_BUFFER I_TLINE INTO WA_BUFFER. 
ENDLOOP. 
TRANSLATE WA_BUFFER USING '~'. 
DO. 
I_RECORD = WA_BUFFER. 
APPEND I_RECORD. 
SHIFT WA_BUFFER LEFT BY 255 PLACES. 
IF WA_BUFFER IS INITIAL. 
EXIT. 
ENDIF. 
ENDDO. 
* Attachment 
REFRESH: I_RECLIST, 
I_OBJTXT, 
I_OBJBIN, 
I_OBJPACK. 
CLEAR WA_OBJHEAD. 
I_OBJBIN[] = I_RECORD[]. 
* Create Message Body Title and Description 
I_OBJTXT = 'test with pdf-Attachment!'. 
APPEND I_OBJTXT. 
DESCRIBE TABLE I_OBJTXT LINES V_LINES_TXT. 
READ TABLE I_OBJTXT INDEX V_LINES_TXT. 
WA_DOC_CHNG-OBJ_NAME = 'smartform'. 
WA_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10. 
WA_DOC_CHNG-OBJ_DESCR = 'smartform'. 
WA_DOC_CHNG-SENSITIVTY = 'F'. 
WA_DOC_CHNG-DOC_SIZE = V_LINES_TXT * 255. 
* Main Text 
CLEAR I_OBJPACK-TRANSF_BIN. 
I_OBJPACK-HEAD_START = 1. 
I_OBJPACK-HEAD_NUM = 0. 
I_OBJPACK-BODY_START = 1. 
I_OBJPACK-BODY_NUM = V_LINES_TXT. 
I_OBJPACK-DOC_TYPE = 'RAW'. 
APPEND I_OBJPACK. 
* Attachment (pdf-Attachment) 
I_OBJPACK-TRANSF_BIN = 'X'. 
I_OBJPACK-HEAD_START = 1. 
I_OBJPACK-HEAD_NUM = 0. 
I_OBJPACK-BODY_START = 1. 
DESCRIBE TABLE I_OBJBIN LINES V_LINES_BIN. 
READ TABLE I_OBJBIN INDEX V_LINES_BIN. 
I_OBJPACK-DOC_SIZE = V_LINES_BIN * 255 . 
I_OBJPACK-BODY_NUM = V_LINES_BIN. 
I_OBJPACK-DOC_TYPE = 'PDF'. 
I_OBJPACK-OBJ_NAME = 'smart'. 
I_OBJPACK-OBJ_DESCR = 'test'. 
APPEND I_OBJPACK. 
CLEAR I_RECLIST. 
I_RECLIST-RECEIVER = 'reddy at gmail'. 
I_RECLIST-REC_TYPE = 'U'. 
APPEND I_RECLIST. 
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' 
EXPORTING 
DOCUMENT_DATA = WA_DOC_CHNG 
PUT_IN_OUTBOX = 'X' 
COMMIT_WORK = 'X' 
TABLES 
PACKING_LIST = I_OBJPACK 
OBJECT_HEADER = WA_OBJHEAD 
CONTENTS_BIN = I_OBJBIN 
CONTENTS_TXT = I_OBJTXT 
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 <> 0. 
WRITE:/ 'Error When Sending the File', SY-SUBRC. 
ELSE. 
WRITE:/ 'Mail sent'. 
ENDIF.

If you want to send some text as Body of the Mail then follow this once

when u r callin the FM'SO_NEW_DOCUMENT_ATT_SEND_API1'.. points to remember
1.u have to pass the body of content in table CONTENTS_TXT(ia m using I_OBJBIN) (each line a record) then. suppose i have appended 11 records to the table CONTENTS_TXT .
2.PACKING_LIST(iam usign I_OBJPACK) table u ahve to append a redord as follows

I_OBJPACK-TRANSF_BIN = ' '.
I_OBJPACK-HEAD_START = 000000000000001.
I_OBJPACK-HEAD_NUM = 000000000000001.
I_OBJPACK-BODY_START = 000000000000002
I_OBJPACK-BODY_NUM = 000000000000010.
I_OBJPACK-DOC_TYPE = 'RAW'.
append I_OBJPACK-.

 by the above code system treat the first line in table I_OBJBIN as header and the 2nd line to 10 lines tread as body.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = WA_DOC_CHNG
PUT_IN_OUTBOX = 'X'
TABLES
PACKING_LIST = I_OBJPACK
OBJECT_HEADER = WA_OBJHEAD
CONTENTS_BIN = I_OBJBIN
CONTENTS_TXT = I_OBJTXT
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.

Best regards,

raam

Former Member
0 Kudos

Hello Kodandarami Reddy,

Can you tell me the values to be passed for the function module "SSFCONVERT_OTF_AND_MAIL" to send mail through FINT transaction.

These are the importing parameters. What are the values to be passed.

OBJTYPE

OBJKEY

DESCRIBE

Thanks,

Indrakaran