<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Query in Email !!!! in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455449#M830167</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is the code to send the Smartform to mail as PDF attachment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&amp;amp;---------------------------------------------------------------------
*&amp;amp; Report ZTEST_PDF_MAIL
*&amp;amp;
&amp;amp;---------------------------------------------------------------------
REPORT ZTEST_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 = 'nareshreddy.k@gmail.com'.
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.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Feb 2008 06:35:14 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-18T06:35:14Z</dc:date>
    <item>
      <title>Query in Email !!!!</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455447#M830165</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;Can anyone please tell me any Function Module / Class by which I can send an email with a smart form as attachment.&lt;/P&gt;&lt;P&gt;Kindly reply immediately as this is bit urgent.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 06:14:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455447#M830165</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-18T06:14:04Z</dc:date>
    </item>
    <item>
      <title>Re: Query in Email !!!!</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455448#M830166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try with the FM &lt;STRONG&gt;'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/STRONG&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 06:32:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455448#M830166</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-18T06:32:42Z</dc:date>
    </item>
    <item>
      <title>Re: Query in Email !!!!</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455449#M830167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is the code to send the Smartform to mail as PDF attachment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&amp;amp;---------------------------------------------------------------------
*&amp;amp; Report ZTEST_PDF_MAIL
*&amp;amp;
&amp;amp;---------------------------------------------------------------------
REPORT ZTEST_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 = 'nareshreddy.k@gmail.com'.
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.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 06:35:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455449#M830167</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-18T06:35:14Z</dc:date>
    </item>
    <item>
      <title>Re: Query in Email !!!!</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455450#M830168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sravan,&lt;/P&gt;&lt;P&gt;                 Thanks a lot for yuor reply. It has really helped me to make some progress.&lt;/P&gt;&lt;P&gt;But I am getting an error.&lt;/P&gt;&lt;P&gt;Can you please tell me why that error occurs .&lt;/P&gt;&lt;P&gt;The error I get is 'Document Not Sent'&lt;/P&gt;&lt;P&gt;My code is as follows:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  Z_TEST_SEND_MAIL&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  Z_TEST_SEND_MAIL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal Table declarations&lt;/P&gt;&lt;P&gt;DATA: I_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      I_TLINE TYPE TABLE OF TLINE WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      I_RECEIVERS TYPE TABLE OF SOMLRECI1 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      I_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Objects to send mail.&lt;/P&gt;&lt;P&gt;I_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;I_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;I_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Work Area declarations&lt;/P&gt;&lt;P&gt;WA_OBJHEAD TYPE SOLI_TAB,&lt;/P&gt;&lt;P&gt;W_CTRLOP TYPE SSFCTRLOP,&lt;/P&gt;&lt;P&gt;W_COMPOP TYPE SSFCOMPOP,&lt;/P&gt;&lt;P&gt;W_RETURN TYPE SSFCRESCL,&lt;/P&gt;&lt;P&gt;WA_DOC_CHNG TYPE SODOCCHGI1,&lt;/P&gt;&lt;P&gt;W_DATA TYPE SODOCCHGI1,&lt;/P&gt;&lt;P&gt;WA_BUFFER TYPE STRING, "To convert from 132 to 255&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Variables declarations&lt;/P&gt;&lt;P&gt;V_FORM_NAME TYPE RS38L_FNAM,&lt;/P&gt;&lt;P&gt;V_LEN_IN LIKE SOOD-OBJLEN,&lt;/P&gt;&lt;P&gt;V_LEN_OUT LIKE SOOD-OBJLEN,&lt;/P&gt;&lt;P&gt;V_LEN_OUTN TYPE I,&lt;/P&gt;&lt;P&gt;V_LINES_TXT TYPE I,&lt;/P&gt;&lt;P&gt;V_LINES_BIN TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FORMNAME = 'Z_TEST'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;FM_NAME = V_FORM_NAME&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;NO_FORM = 1&lt;/P&gt;&lt;P&gt;NO_FUNCTION_MODULE = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;W_CTRLOP-GETOTF = 'X'.&lt;/P&gt;&lt;P&gt;W_CTRLOP-NO_DIALOG = 'X'.&lt;/P&gt;&lt;P&gt;W_COMPOP-TDNOPREV = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : LV_ANSWER TYPE CRM_SVY_DB_STRING.&lt;/P&gt;&lt;P&gt;DATA : devtype type rspoptype.&lt;/P&gt;&lt;P&gt;DATA : output_options type ssfcompop,&lt;/P&gt;&lt;P&gt;       control_parameters  type ssfctrlop,&lt;/P&gt;&lt;P&gt;       output_data         type ssfcrescl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LV_ANSWER = 'TEST'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*CALL FUNCTION V_FORM_NAME&lt;/P&gt;&lt;P&gt;*EXPORTING&lt;/P&gt;&lt;P&gt;*CONTROL_PARAMETERS = W_CTRLOP&lt;/P&gt;&lt;P&gt;*OUTPUT_OPTIONS = W_COMPOP&lt;/P&gt;&lt;P&gt;**USER_SETTINGS = 'X'&lt;/P&gt;&lt;P&gt;*ANSWER              =  lv_answer&lt;/P&gt;&lt;P&gt;*IMPORTING&lt;/P&gt;&lt;P&gt;*JOB_OUTPUT_INFO = W_RETURN&lt;/P&gt;&lt;P&gt;*EXCEPTIONS&lt;/P&gt;&lt;P&gt;*FORMATTING_ERROR = 1&lt;/P&gt;&lt;P&gt;*INTERNAL_ERROR = 2&lt;/P&gt;&lt;P&gt;*SEND_ERROR = 3&lt;/P&gt;&lt;P&gt;*USER_CANCELED = 4&lt;/P&gt;&lt;P&gt;*OTHERS = 5.&lt;/P&gt;&lt;P&gt;   call function 'SSF_GET_DEVICE_TYPE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_language             = sy-langu&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      e_devtype              =&lt;/P&gt;&lt;P&gt;      devtype&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_language            = 1&lt;/P&gt;&lt;P&gt;      language_not_installed = 2&lt;/P&gt;&lt;P&gt;      no_devtype_found       = 3&lt;/P&gt;&lt;P&gt;      system_error           = 4&lt;/P&gt;&lt;P&gt;      others                 = 5.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set device type in output options&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  output_options-tdprinter = devtype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  control_parameters-langu = sy-langu.&lt;/P&gt;&lt;P&gt;  control_parameters-no_dialog = 'X'.&lt;/P&gt;&lt;P&gt;  control_parameters-getotf    = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION V_FORM_name&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_INDEX              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_INDEX_TAB          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_PARAMETERS         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CONTROL_PARAMETERS         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MAIL_APPL_OBJ              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MAIL_RECIPIENT             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MAIL_SENDER                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OUTPUT_OPTIONS             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USER_SETTINGS              = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   CONTROL_PARAMETERS         = CONTROL_PARAMETERS&lt;/P&gt;&lt;P&gt;   OUTPUT_OPTIONS             = OUTPUT_OPTIONS&lt;/P&gt;&lt;P&gt;    ANSWER              =  lv_answer&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DOCUMENT_OUTPUT_INFO       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  JOB_OUTPUT_INFO            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  JOB_OUTPUT_OPTIONS         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;P&gt;   JOB_OUTPUT_INFO            = W_RETURN&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_bookings                = bookings&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_schedules               = connections&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   formatting_error           = 1&lt;/P&gt;&lt;P&gt;   internal_error             = 2&lt;/P&gt;&lt;P&gt;   send_error                 = 3&lt;/P&gt;&lt;P&gt;   user_canceled              = 4&lt;/P&gt;&lt;P&gt;   OTHERS                     = 5&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_OTF[] = W_RETURN-OTFDATA[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERT_OTF'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;FORMAT = 'PDF'&lt;/P&gt;&lt;P&gt;MAX_LINEWIDTH = 132&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;BIN_FILESIZE = V_LEN_IN&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;OTF = I_OTF&lt;/P&gt;&lt;P&gt;LINES = I_TLINE&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;ERR_MAX_LINEWIDTH = 1&lt;/P&gt;&lt;P&gt;ERR_FORMAT = 2&lt;/P&gt;&lt;P&gt;ERR_CONV_NOT_POSSIBLE = 3&lt;/P&gt;&lt;P&gt;OTHERS = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT I_TLINE.&lt;/P&gt;&lt;P&gt;TRANSLATE I_TLINE USING '~'.&lt;/P&gt;&lt;P&gt;CONCATENATE WA_BUFFER I_TLINE INTO WA_BUFFER.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRANSLATE WA_BUFFER USING '~'.&lt;/P&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;I_RECORD = WA_BUFFER.&lt;/P&gt;&lt;P&gt;APPEND I_RECORD.&lt;/P&gt;&lt;P&gt;SHIFT WA_BUFFER LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;IF WA_BUFFER IS INITIAL.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Attachment&lt;/P&gt;&lt;P&gt;REFRESH: I_RECLIST,&lt;/P&gt;&lt;P&gt;I_OBJTXT,&lt;/P&gt;&lt;P&gt;I_OBJBIN,&lt;/P&gt;&lt;P&gt;I_OBJPACK.&lt;/P&gt;&lt;P&gt;CLEAR WA_OBJHEAD.&lt;/P&gt;&lt;P&gt;I_OBJBIN[] = I_RECORD[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create Message Body Title and Description I_OBJTXT = 'test with pdf-Attachment!'.&lt;/P&gt;&lt;P&gt;APPEND I_OBJTXT.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE I_OBJTXT LINES V_LINES_TXT.&lt;/P&gt;&lt;P&gt;READ TABLE I_OBJTXT INDEX V_LINES_TXT.&lt;/P&gt;&lt;P&gt;WA_DOC_CHNG-OBJ_NAME = 'smartform'.&lt;/P&gt;&lt;P&gt;WA_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.&lt;/P&gt;&lt;P&gt;WA_DOC_CHNG-OBJ_DESCR = 'smartform'.&lt;/P&gt;&lt;P&gt;WA_DOC_CHNG-SENSITIVTY = 'F'.&lt;/P&gt;&lt;P&gt;WA_DOC_CHNG-DOC_SIZE = V_LINES_TXT * 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Main Text&lt;/P&gt;&lt;P&gt;CLEAR I_OBJPACK-TRANSF_BIN.&lt;/P&gt;&lt;P&gt;I_OBJPACK-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;I_OBJPACK-HEAD_NUM = 0.&lt;/P&gt;&lt;P&gt;I_OBJPACK-BODY_START = 1.&lt;/P&gt;&lt;P&gt;I_OBJPACK-BODY_NUM = V_LINES_TXT.&lt;/P&gt;&lt;P&gt;I_OBJPACK-DOC_TYPE = 'RAW'.&lt;/P&gt;&lt;P&gt;APPEND I_OBJPACK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Attachment (pdf-Attachment)&lt;/P&gt;&lt;P&gt;I_OBJPACK-TRANSF_BIN = 'X'.&lt;/P&gt;&lt;P&gt;I_OBJPACK-HEAD_START = 1.&lt;/P&gt;&lt;P&gt;I_OBJPACK-HEAD_NUM = 0.&lt;/P&gt;&lt;P&gt;I_OBJPACK-BODY_START = 1.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE I_OBJBIN LINES V_LINES_BIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE I_OBJBIN INDEX V_LINES_BIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_OBJPACK-DOC_SIZE = V_LINES_BIN * 255 .&lt;/P&gt;&lt;P&gt;I_OBJPACK-BODY_NUM = V_LINES_BIN.&lt;/P&gt;&lt;P&gt;I_OBJPACK-DOC_TYPE = 'PDF'.&lt;/P&gt;&lt;P&gt;I_OBJPACK-OBJ_NAME = 'smart'.&lt;/P&gt;&lt;P&gt;I_OBJPACK-OBJ_DESCR = 'test'.&lt;/P&gt;&lt;P&gt;APPEND I_OBJPACK.&lt;/P&gt;&lt;P&gt;CLEAR I_RECLIST.&lt;/P&gt;&lt;P&gt;I_RECLIST-RECEIVER = 'mail@mail.com'.&lt;/P&gt;&lt;P&gt;I_RECLIST-REC_TYPE = 'U'.&lt;/P&gt;&lt;P&gt;APPEND I_RECLIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;DOCUMENT_DATA = WA_DOC_CHNG&lt;/P&gt;&lt;P&gt;*PUT_IN_OUTBOX = 'X'&lt;/P&gt;&lt;P&gt;*COMMIT_WORK = 'X'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;PACKING_LIST = I_OBJPACK&lt;/P&gt;&lt;P&gt;*OBJECT_HEADER = WA_OBJHEAD&lt;/P&gt;&lt;P&gt;CONTENTS_BIN = I_OBJBIN&lt;/P&gt;&lt;P&gt;CONTENTS_TXT = I_OBJTXT&lt;/P&gt;&lt;P&gt;RECEIVERS = I_RECLIST&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;TOO_MANY_RECEIVERS = 1&lt;/P&gt;&lt;P&gt;DOCUMENT_NOT_SENT = 2&lt;/P&gt;&lt;P&gt;DOCUMENT_TYPE_NOT_EXIST = 3&lt;/P&gt;&lt;P&gt;OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;PARAMETER_ERROR = 5&lt;/P&gt;&lt;P&gt;X_ERROR = 6&lt;/P&gt;&lt;P&gt;ENQUEUE_ERROR = 7&lt;/P&gt;&lt;P&gt;OTHERS = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;WRITE:/ 'Error When Sending the File', SY-SUBRC.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;WRITE:/ 'Mail sent'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 08:54:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/query-in-email/m-p/3455450#M830168</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-18T08:54:32Z</dc:date>
    </item>
  </channel>
</rss>

