<?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 send mail with attachment in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/send-mail-with-attachment/m-p/3517339#M845959</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I created a PDF from a sapscript, but when I want to send it trough mail, the attachment won 't open....&lt;/P&gt;&lt;P&gt;I sarched the forum several times, but didn 't found a solution..&lt;/P&gt;&lt;P&gt;This is my code&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA: struct TYPE ITCPO.
DATA: PDFTAB TYPE TABLE OF TLINE WITH HEADER LINE,
DATAB TYPE TABLE OF ITCOO WITH HEADER LINE.
DATA: BINFILESIZE TYPE I,
FILE_NAME TYPE STRING,
FILE_PATH TYPE STRING,
FULL_PATH TYPE STRING.
****************************END DECLARATIONS***************************
*To specify Printer name*
*To specify no Print Preview*
struct-tdnoprev = 'X'.
struct-TDnoprint = 'X'.
*To access the SAP Script output in OTF format*
struct-tdgetotf = 'X'.
***************************SAPSCRIPTSGENERATION*************************
*******

CALL FUNCTION 'OPEN_FORM'
     EXPORTING
          form     = 'YBA34_MA_INVOICE'
          dialog   = ' '
          options = struct
     EXCEPTIONS
          canceled = 1
          device   = 2
          form     = 3
          options  = 4
          unclosed = 5
          OTHERS   = 6.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
EXIT.
ENDIF.

TABLES : vbrp ,
         vbrk ,
         vbak ,
         vbap ,
         t880 ,
         t005 ,
         t005t,
         t001 ,
         tvak ,
         tvakt,
         t001n,
         kna1,
         vbpa,
         knvk.

DATA : wa_bd TYPE vbeln,
       wa_parnr type parnr.


PARAMETERS : wa_vbeln TYPE vbeln.




*data selection
SELECT  * FROM vbrp
WHERE aubel = wa_vbeln.
ENDSELECT.

CLEAR wa_bd.
LOOP AT vbrp.
  wa_bd = vbrp-vbeln.
  EXIT.
ENDLOOP.

SELECT SINGLE * FROM vbrk
WHERE vbeln = vbrp-vbeln.

SELECT SINGLE * FROM vbak
WHERE vbeln = wa_vbeln.

SELECT SINGLE * FROM tvakt
WHERE auart = vbak-auart.

SELECT SINGLE * FROM t880
  WHERE rcomp = vbrk-vkorg.

SELECT SINGLE * FROM t005t
WHERE land1 = t880-cntry.

SELECT SINGLE * FROM t005
WHERE land1 = t880-cntry.

  SELECT SINGLE * FROM t001
  WHERE bukrs = 'BE30'.

  SELECT SINGLE * FROM t001n
  WHERE bukrs LIKE 'BE3%'
  AND land1 = vbak-landtx.


  SELECT SINGLE * FROM kna1
  WHERE kunnr = vbrk-kunag.

  SELECT SINGLE parnr FROM vbpa
  INTO wa_parnr
  WHERE vbeln = vbrp-aubel
  AND parvw = 'AG'.

  SELECT SINGLE * FROM knvk
  WHERE parnr = wa_parnr.

CALL FUNCTION 'WRITE_FORM'
     EXPORTING
          function = 'SET'
          type     = 'BODY'
          window   = 'MAIN'
     EXCEPTIONS
          OTHERS   = 1.
IF sy-subrc &amp;lt;&amp;gt; 0.
 
ENDIF.

* Close customer form
CALL FUNCTION 'END_FORM'
     EXCEPTIONS
          OTHERS = 1.
IF sy-subrc &amp;lt;&amp;gt; 0.
  WRITE 'Error in end_form'(006).
  EXIT.
ENDIF.

CALL FUNCTION 'CLOSE_FORM'
* IMPORTING
* RESULT =
* RDI_RESULT =
TABLES
OTFDATA = datab[]
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 4
CODEPAGE = 5
OTHERS = 6
.
IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
 MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ' '
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ' '
* PDF_DELETE_OTFTAB = ' '
IMPORTING
BIN_FILESIZE = BINFILESIZE
* BIN_FILE =
TABLES
otf = DATAB[]
lines = PDFTAB[]
* EXCEPTIONS
* ERR_MAX_LINEWIDTH = 1
* ERR_FORMAT = 2
* ERR_CONV_NOT_POSSIBLE = 3
* ERR_BAD_OTF = 4
* OTHERS = 5
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I save the table PDFTAB[], I can open the PDF, but ailing won 't work...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Mar 2008 00:32:07 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-13T00:32:07Z</dc:date>
    <item>
      <title>send mail with attachment</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/send-mail-with-attachment/m-p/3517339#M845959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I created a PDF from a sapscript, but when I want to send it trough mail, the attachment won 't open....&lt;/P&gt;&lt;P&gt;I sarched the forum several times, but didn 't found a solution..&lt;/P&gt;&lt;P&gt;This is my code&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA: struct TYPE ITCPO.
DATA: PDFTAB TYPE TABLE OF TLINE WITH HEADER LINE,
DATAB TYPE TABLE OF ITCOO WITH HEADER LINE.
DATA: BINFILESIZE TYPE I,
FILE_NAME TYPE STRING,
FILE_PATH TYPE STRING,
FULL_PATH TYPE STRING.
****************************END DECLARATIONS***************************
*To specify Printer name*
*To specify no Print Preview*
struct-tdnoprev = 'X'.
struct-TDnoprint = 'X'.
*To access the SAP Script output in OTF format*
struct-tdgetotf = 'X'.
***************************SAPSCRIPTSGENERATION*************************
*******

CALL FUNCTION 'OPEN_FORM'
     EXPORTING
          form     = 'YBA34_MA_INVOICE'
          dialog   = ' '
          options = struct
     EXCEPTIONS
          canceled = 1
          device   = 2
          form     = 3
          options  = 4
          unclosed = 5
          OTHERS   = 6.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
EXIT.
ENDIF.

TABLES : vbrp ,
         vbrk ,
         vbak ,
         vbap ,
         t880 ,
         t005 ,
         t005t,
         t001 ,
         tvak ,
         tvakt,
         t001n,
         kna1,
         vbpa,
         knvk.

DATA : wa_bd TYPE vbeln,
       wa_parnr type parnr.


PARAMETERS : wa_vbeln TYPE vbeln.




*data selection
SELECT  * FROM vbrp
WHERE aubel = wa_vbeln.
ENDSELECT.

CLEAR wa_bd.
LOOP AT vbrp.
  wa_bd = vbrp-vbeln.
  EXIT.
ENDLOOP.

SELECT SINGLE * FROM vbrk
WHERE vbeln = vbrp-vbeln.

SELECT SINGLE * FROM vbak
WHERE vbeln = wa_vbeln.

SELECT SINGLE * FROM tvakt
WHERE auart = vbak-auart.

SELECT SINGLE * FROM t880
  WHERE rcomp = vbrk-vkorg.

SELECT SINGLE * FROM t005t
WHERE land1 = t880-cntry.

SELECT SINGLE * FROM t005
WHERE land1 = t880-cntry.

  SELECT SINGLE * FROM t001
  WHERE bukrs = 'BE30'.

  SELECT SINGLE * FROM t001n
  WHERE bukrs LIKE 'BE3%'
  AND land1 = vbak-landtx.


  SELECT SINGLE * FROM kna1
  WHERE kunnr = vbrk-kunag.

  SELECT SINGLE parnr FROM vbpa
  INTO wa_parnr
  WHERE vbeln = vbrp-aubel
  AND parvw = 'AG'.

  SELECT SINGLE * FROM knvk
  WHERE parnr = wa_parnr.

CALL FUNCTION 'WRITE_FORM'
     EXPORTING
          function = 'SET'
          type     = 'BODY'
          window   = 'MAIN'
     EXCEPTIONS
          OTHERS   = 1.
IF sy-subrc &amp;lt;&amp;gt; 0.
 
ENDIF.

* Close customer form
CALL FUNCTION 'END_FORM'
     EXCEPTIONS
          OTHERS = 1.
IF sy-subrc &amp;lt;&amp;gt; 0.
  WRITE 'Error in end_form'(006).
  EXIT.
ENDIF.

CALL FUNCTION 'CLOSE_FORM'
* IMPORTING
* RESULT =
* RDI_RESULT =
TABLES
OTFDATA = datab[]
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 4
CODEPAGE = 5
OTHERS = 6
.
IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
 MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ' '
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ' '
* PDF_DELETE_OTFTAB = ' '
IMPORTING
BIN_FILESIZE = BINFILESIZE
* BIN_FILE =
TABLES
otf = DATAB[]
lines = PDFTAB[]
* EXCEPTIONS
* ERR_MAX_LINEWIDTH = 1
* ERR_FORMAT = 2
* ERR_CONV_NOT_POSSIBLE = 3
* ERR_BAD_OTF = 4
* OTHERS = 5
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I save the table PDFTAB[], I can open the PDF, but ailing won 't work...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2008 00:32:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/send-mail-with-attachment/m-p/3517339#M845959</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-13T00:32:07Z</dc:date>
    </item>
    <item>
      <title>Re: send mail with attachment</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/send-mail-with-attachment/m-p/3517340#M845960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Possibly caused by length of fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PDF returned from SAPscript is in a table with lines 134 long (2 + 132) and is binary data.  Email send mainly uses attachments in internal tables of 255 char length.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so to email a PDF need to merge lines from table into longer format to maintain binary file integrity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;that is - &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; line 1 of output (255) = first 255 char of [ line1 of input(134) line2 of input(134) ] &lt;/P&gt;&lt;P&gt; line 2 of output (255) = first 255 char of [ remains of line2 of input+ line3 of input + line4 ] &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fairly simple to do in a loop - but take care using CONCATENATE as this can drop / shorten spaces which will break the PDF again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;possible code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at in_tab into in_tab_wa.&lt;/P&gt;&lt;P&gt;temp_str+len(134) = in_tab_wa.&lt;/P&gt;&lt;P&gt;len = len + 134.&lt;/P&gt;&lt;P&gt;if len &amp;gt; 255.&lt;/P&gt;&lt;P&gt;out_tab_wa = temp_str+0(255).&lt;/P&gt;&lt;P&gt;append out_tab_wa to out_tab.&lt;/P&gt;&lt;P&gt;temp_str = temp_str+255.&lt;/P&gt;&lt;P&gt;len = len - 255.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add final bit of file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;if not temp_str is initial.&lt;/P&gt;&lt;P&gt;out_tab_wa = temp_str+0(255).&lt;/P&gt;&lt;P&gt;append out_tab_wa to out_tab.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this code not tested.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Andrew&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2008 02:31:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/send-mail-with-attachment/m-p/3517340#M845960</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-13T02:31:09Z</dc:date>
    </item>
  </channel>
</rss>

