<?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: sending smartforms and sapscripts through email in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212689#M1006667</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="306176"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 25 Jul 2008 11:29:22 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-07-25T11:29:22Z</dc:date>
    <item>
      <title>sending smartforms and sapscripts through email</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212687#M1006665</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;how to send the smartforms and sapscripts through email.plz help me in this session.&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;&lt;/P&gt;&lt;P&gt;thanks.................&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 11:25:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212687#M1006665</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-25T11:25:52Z</dc:date>
    </item>
    <item>
      <title>Re: sending smartforms and sapscripts through email</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212688#M1006666</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check the sample, Smart form output as PDF as email attachement/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT ycor_test_trigger_wf.
DATA:
  w_fm_name      TYPE rs38l_fnam,
  w_bin_filesize TYPE i,
  w_filesize     TYPE i,
  w_lines_txt    TYPE i,
  w_lines_bin    TYPE i.

DATA:
  wa_ctrlop   TYPE ssfctrlop,
  wa_outopt   TYPE ssfcompop,
  wa_objhead  TYPE soli_tab,
  wa_buffer   TYPE string,
  wa_doc_chng TYPE sodocchgi1.
DATA:
  BEGIN OF t_mail_ids OCCURS 0,
    mailid TYPE ad_smtpadr,
  END OF t_mail_ids,

  t_otfdata TYPE ssfcrescl,
  t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
  t_pdf_tab TYPE tline OCCURS 0 WITH HEADER LINE,
  t_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
  t_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
  t_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
  t_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
  t_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE.


CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    formname           = 'Z195_TEST'   "smartformname
  IMPORTING
    fm_name            = w_fm_name
  EXCEPTIONS
    no_form            = 1
    no_function_module = 2
    OTHERS             = 3.
IF sy-subrc EQ 0.
ENDIF.                               " IF sy-subrc EQ 0.

wa_ctrlop-getotf = 'X'.
wa_ctrlop-no_dialog = 'X'.
wa_outopt-tdnoprev = 'X'.

CALL FUNCTION w_fm_name
  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 EQ 0.
ENDIF.                               " IF sy-subrc EQ 0.

t_otf[] = t_otfdata-otfdata[].

CALL FUNCTION 'CONVERT_OTF'
  EXPORTING
    format                = 'PDF'
    max_linewidth         = 132
  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
    err_bad_otf           = 4
    OTHERS                = 5.
IF sy-subrc EQ 0.
ENDIF.                               " IF sy-subrc EQ 0.
LOOP AT t_pdf_tab.
  TRANSLATE t_pdf_tab USING '~'.
  CONCATENATE wa_buffer t_pdf_tab INTO wa_buffer.
ENDLOOP.
TRANSLATE wa_buffer USING '~'.
DO.
  t_record = wa_buffer.
  APPEND t_record.
  SHIFT wa_buffer LEFT BY 255 PLACES.
  IF wa_buffer IS INITIAL.
    EXIT.
  ENDIF.
ENDDO.

t_objtxt = ' To Change the COR, Use the Transaction ZCOR_CHANGE'.
APPEND t_objtxt.
t_objtxt = ' Check the Attached PDF file for COR'.
APPEND t_objtxt.

DESCRIBE TABLE t_objtxt LINES w_lines_txt.
READ TABLE t_objtxt INDEX w_lines_txt.

READ TABLE t_objtxt INDEX w_lines_txt.
wa_doc_chng-obj_name = 'COR Display'.
wa_doc_chng-expiry_dat = sy-datum + 10.

CONCATENATE 'COR' "w_cornr
            '-' "w_stat_descr w_action_desc
       INTO wa_doc_chng-obj_descr SEPARATED BY space.

wa_doc_chng-sensitivty = 'F'.
wa_doc_chng-doc_size =  w_lines_txt  * 255.
CLEAR t_objpack-transf_bin.
t_objpack-head_start = 1.
t_objpack-head_num = 0.
t_objpack-body_start = 1.
t_objpack-body_num = w_lines_txt.
t_objpack-doc_type = 'RAW'.
APPEND t_objpack.

t_objpack-transf_bin = 'X'.
t_objpack-head_start = 1.
t_objpack-head_start = 1.
t_objpack-head_num = 0.
t_objpack-body_start = 1.
DESCRIBE TABLE t_objbin LINES w_lines_bin.
READ TABLE t_objbin INDEX w_lines_bin.
t_objpack-doc_size = w_lines_bin * 255 .
t_objpack-body_num = w_lines_bin.
t_objpack-doc_type = 'PDF'.
t_objpack-obj_name = 'COR'.
t_objpack-obj_descr = 'COR Test'.

APPEND t_objpack.

  CLEAR t_reclist.
  t_reclist-receiver = 'internatemailaddress'.
  t_reclist-rec_type = 'U'.
  APPEND t_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               = t_objpack
    object_header              = wa_objhead
    contents_bin               = t_objbin
    contents_txt               = t_objtxt
    receivers                  = t_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.
ENDIF.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 11:29:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212688#M1006666</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-25T11:29:09Z</dc:date>
    </item>
    <item>
      <title>Re: sending smartforms and sapscripts through email</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212689#M1006667</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="306176"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 11:29:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212689#M1006667</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-25T11:29:22Z</dc:date>
    </item>
    <item>
      <title>Re: sending smartforms and sapscripts through email</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212690#M1006668</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Swathi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="5397729"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="5397731"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="5742559"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="5466778"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sandeep&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 11:30:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212690#M1006668</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-25T11:30:11Z</dc:date>
    </item>
    <item>
      <title>Re: sending smartforms and sapscripts through email</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212691#M1006669</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Swathi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  YH1056_SENTEMAILPDF
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;Convert smartform output in .PDF format and Sent e-mail to destination
*&amp;amp;Address
*&amp;amp;---------------------------------------------------------------------*

REPORT  yh1056_sentemailpdf.
DATA: lf_fm_name            TYPE rs38l_fnam.
DATA: ls_control_param      TYPE ssfctrlop.
DATA: ls_composer_param     TYPE ssfcompop.
DATA: ls_recipient          TYPE swotobjid.
DATA: ls_sender             TYPE swotobjid.
DATA: lf_formname           TYPE tdsfname.
DATA: ls_addr_key           LIKE addr_key.
DATA: document_output_info TYPE  ssfcrespd,
      tab_otf_data TYPE ssfcrescl,
      job_output_options TYPE ssfcresop.
DATA: file_size TYPE i ,
      bin_filesize TYPE i ,
      my_tabix TYPE sy-tabix,
      w_complines TYPE i .

TYPES:BEGIN OF ty_tab,
       vbeln TYPE vbap-vbeln,
       posnr TYPE vbap-posnr,
       matnr TYPE vbap-matnr,
       matkl TYPE matkl,
       kwmeng TYPE vbap-kwmeng,
      END OF ty_tab.

DATA : pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE ,
       pdf_buffered LIKE tline OCCURS 0 WITH HEADER LINE,
       itab TYPE TABLE OF ty_tab,
       itab_final TYPE itcoo OCCURS 0 WITH HEADER LINE,
       t_attach_data TYPE TABLE OF solisti1,
       t_objcont TYPE TABLE OF soli.
*       wa_attach_data LIKE LINE OF t_Attach_data.



DATA : w_email TYPE string VALUE 'Put your email id'.


TABLES: nast,                          "Messages
        *nast,                         "Messages
        tnapr,                         "Programs &amp;amp; Forms
        itcpo,                         "Communicationarea for Spool
        arc_params,                    "Archive parameters
        toa_dara,                      "Archive parameters
        addr_key.                      "Adressnumber for ADDRESS

DATA price_print_mode(1) TYPE c.       "Print-mode
DATA: retcode   LIKE sy-subrc.         "Returncode
DATA: repeat(1) TYPE c.
DATA: xscreen(1) TYPE c.               "Output on printer or screen
DATA: BEGIN OF steu,                   "Controldata for output
        vdkex(1) TYPE c,
        vdpex(1) TYPE c,
        kbkex(1) TYPE c,
        kbpex(1) TYPE c,
      END OF steu,
*"Work Areas for Sending Mail..........................................
  wa_doc_data    TYPE sodocchgi1,      " Work Area to hold Attributes of New Document
  wa_pack        TYPE sopcklsti1,      " Work Area for Packing List of Main Document
  wa_objhead     TYPE solisti1,        " Work Area to store Header Text
  wa_messbody    TYPE solisti1,        " Work Area to store Message Body
  wa_receivers   TYPE somlrec90,       " Work Area to store Receiver Information
  wa_attach_data TYPE solisti1,        " Work Area to store the Attached Document
  wa_objcont     TYPE soli,            " Work Area to store data upto 255 Lines.
  t_receivers    LIKE TABLE OF wa_receivers,
  t_pack LIKE STANDARD TABLE OF wa_pack,
*"Work Variables for Sending Mail......................................
  w_tablines     TYPE i,               " Variable to store Table Lines
  w_line         TYPE so_text255,      " Line of text
  w_title        LIKE kna1-anred.                           "#EC NEEDED


PERFORM set_print_param CHANGING     ls_control_param
                                     ls_composer_param
                                     ls_recipient
                                     ls_sender
                                     retcode.

*Get the Smart Form name.
*  IF NOT tnapr-sform IS INITIAL.
*    lf_formname = tnapr-sform.
*  ELSE.
*    MESSAGE e001(/smb40/ssfcomposer).
*  ENDIF.

* determine smartform function module for invoice
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    formname           = 'YH1056_TEST4'
  IMPORTING
    fm_name            = lf_fm_name
  EXCEPTIONS
    no_form            = 1
    no_function_module = 2
    OTHERS             = 3.


CALL FUNCTION lf_fm_name
 EXPORTING
*   ARCHIVE_INDEX              = ARCHIVE_INDEX
*   ARCHIVE_INDEX_TAB          = ARCHIVE_INDEX_TAB
*   ARCHIVE_PARAMETERS         = ARCHIVE_PARAMETERS
   control_parameters         = ls_control_param
*   MAIL_APPL_OBJ              = MAIL_APPL_OBJ
*   MAIL_RECIPIENT             = MAIL_RECIPIENT
*   MAIL_SENDER                = MAIL_SENDER
   output_options             = ls_composer_param
   user_settings              = 'X'
 IMPORTING
*   DOCUMENT_OUTPUT_INFO       = DOCUMENT_OUTPUT_INFO
   job_output_info            =  tab_otf_data
*   JOB_OUTPUT_OPTIONS         = JOB_OUTPUT_OPTIONS
 EXCEPTIONS
   formatting_error           = 1
   internal_error             = 2
   send_error                 = 3
   user_canceled              = 4
          .


IF sy-subrc &amp;lt;&amp;gt; 0.
*    retcode = sy-subrc.
*    PERFORM protocol_update.
*
** get SmartForm protocoll and store it in the NAST protocoll
*    PERFORM add_smfrm_prot.
ENDIF.

itab_final[] = tab_otf_data-otfdata[].


DELETE tab_otf_data-otfdata WHERE tdprintcom = '//'.
READ TABLE itab_final WITH KEY tdprintcom = 'EP'.
my_tabix = sy-tabix + 1.

INSERT lines of tab_otf_data-otfdata INTO itab_final INDEX my_tabix.

PERFORM otf_to_pdf.
*PERFORM subj_of_mail.
*PERFORM body_of_mail.
*PERFORM sending_of_mail.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  set_print_param
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      &amp;lt;--P_LS_CONTROL_PARAM  text
*      &amp;lt;--P_LS_COMPOSER_PARAM  text
*      &amp;lt;--P_LS_RECIPIENT  text
*      &amp;lt;--P_LS_SENDER  text
*      &amp;lt;--P_RETCODE  text
*----------------------------------------------------------------------*
FORM set_print_param CHANGING cs_control_param TYPE ssfctrlop
                              cs_composer_param TYPE ssfcompop
                              cs_recipient TYPE  swotobjid
                              cs_sender TYPE  swotobjid
                              cf_retcode TYPE sy-subrc.

  DATA: ls_itcpo     TYPE itcpo.
  DATA: lf_repid     TYPE sy-repid.
  DATA: lf_device    TYPE tddevice.
  DATA: ls_recipient TYPE swotobjid.
  DATA: ls_sender    TYPE swotobjid.

*  lf_repid = sy-repid.
*
*  CALL FUNCTION 'WFMC_PREPARE_SMART_FORM'
*    EXPORTING
**      pi_nast       = nast
*      pi_repid      = lf_repid
*    IMPORTING
**      pe_returncode = cf_retcode
**      pe_itcpo      = ls_itcpo
**      pe_device     = lf_device
**      pe_recipient  = cs_recipient
**      pe_sender     = cs_sender.

  IF cf_retcode = 0.
*    MOVE-CORRESPONDING ls_itcpo TO cs_composer_param.
    cs_composer_param-tddest     = 'LP01'.                     "Note 591576
*    cs_control_param-device      = ''.
    cs_control_param-no_dialog   = 'X'.
    cs_control_param-preview     = space.
    cs_control_param-getotf      = 'X'.
*    cs_control_param-langu       = nast-spras.
  ENDIF.

ENDFORM.                               " set_print_param
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  protocol_update
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM protocol_update .
  CHECK xscreen = space.
  CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
    EXPORTING
      msg_arbgb = syst-msgid
      msg_nr    = syst-msgno
      msg_ty    = syst-msgty
      msg_v1    = syst-msgv1
      msg_v2    = syst-msgv2
      msg_v3    = syst-msgv3
      msg_v4    = syst-msgv4
    EXCEPTIONS
      OTHERS    = 1.
ENDFORM.                    " protocol_update
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  add_smfrm_prot
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM add_smfrm_prot .
  DATA: lt_errortab             TYPE tsferror.
  DATA: lf_msgnr                TYPE sy-msgno.
  DATA:  l_s_log                TYPE bal_s_log,
         p_loghandle            TYPE balloghndl,
         l_s_msg                TYPE bal_s_msg.
  FIELD-SYMBOLS: &amp;lt;fs_errortab&amp;gt;  TYPE LINE OF tsferror.

* get smart form protocoll
  CALL FUNCTION 'SSF_READ_ERRORS'
    IMPORTING
      errortab = lt_errortab.

* add smartform protocoll to nast protocoll
  LOOP AT lt_errortab ASSIGNING &amp;lt;fs_errortab&amp;gt;.
    CLEAR lf_msgnr.
    lf_msgnr = &amp;lt;fs_errortab&amp;gt;-errnumber.
    CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
      EXPORTING
        msg_arbgb = &amp;lt;fs_errortab&amp;gt;-msgid
        msg_nr    = lf_msgnr
        msg_ty    = &amp;lt;fs_errortab&amp;gt;-msgty
        msg_v1    = &amp;lt;fs_errortab&amp;gt;-msgv1
        msg_v2    = &amp;lt;fs_errortab&amp;gt;-msgv2
        msg_v3    = &amp;lt;fs_errortab&amp;gt;-msgv3
        msg_v4    = &amp;lt;fs_errortab&amp;gt;-msgv4
      EXCEPTIONS
        OTHERS    = 1.
  ENDLOOP.
* open the application log
  l_s_log-extnumber    = sy-uname.
  CALL FUNCTION 'BAL_LOG_CREATE'
    EXPORTING
      i_s_log      = l_s_log
    IMPORTING
      e_log_handle = p_loghandle
    EXCEPTIONS
      OTHERS       = 1.
  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.

  LOOP AT lt_errortab ASSIGNING &amp;lt;fs_errortab&amp;gt;.
    MOVE-CORRESPONDING &amp;lt;fs_errortab&amp;gt; TO l_s_msg.
    CALL FUNCTION 'BAL_LOG_MSG_ADD'
      EXPORTING
        i_log_handle = p_loghandle
        i_s_msg      = l_s_msg
      EXCEPTIONS
        OTHERS       = 1.
    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.
  ENDLOOP.

** Function module to display error logs during
** smart form processing
** Notice , the function 'BAL_DSP_LOG_DISPLAY' can
** not be used when you using output dispatch time
** 4 (Send immediately), so the statement is comment
** out by default.

** You can enable the function call statement
** if your form can not be output and you want to
** see the error log. Set output dispatch time to 3
** before save your order, then print or preview the
** output.

  DATA lv_debug.
  IF NOT lv_debug IS INITIAL.
    CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'.
  ENDIF.


ENDFORM.                            " add_smfrm_prot
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  otf_to_pdf
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM otf_to_pdf .

  CALL FUNCTION 'CONVERT_OTF'
   EXPORTING
     format                      = 'PDF'
     max_linewidth               = 132
*     ARCHIVE_INDEX               = ' '
*     COPYNUMBER                  = 0
*     ASCII_BIDI_VIS2LOG          = ' '
*     PDF_DELETE_OTFTAB           = ' '
   IMPORTING
     bin_filesize                = bin_filesize
*     *     BIN_FILE                    = BIN_FILE
    TABLES
      otf                         = itab_final
      lines                       = pdf_tab
*   EXCEPTIONS
*     ERR_MAX_LINEWIDTH           = 1
*     ERR_FORMAT                  = 2
*     ERR_CONV_NOT_POSSIBLE       = 3
*     ERR_BAD_OTF                 = 4
            .
*
*  LOOP AT pdf_tab.
*    wa_attach_data = pdf_tab-tdline.
*    APPEND wa_attach_data TO t_attach_data.
*  ENDLOOP.
*
 PERFORM conversion_of_size.
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    bin_filesize                    = bin_filesize
    filename                        = 'D:\extra\pdftest.pdf'
    filetype                        = 'BIN'
*     APPEND                          = ' '
*     WRITE_FIELD_SEPARATOR           = ' '
*     HEADER                          = '00'
*     TRUNC_TRAILING_BLANKS           = ' '
*     WRITE_LF                        = 'X'
*     COL_SELECT                      = ' '
*     COL_SELECT_MASK                 = ' '
*     DAT_MODE                        = ' '
*     CONFIRM_OVERWRITE               = ' '
*     NO_AUTH_CHECK                   = ' '
*     CODEPAGE                        = ' '
*     IGNORE_CERR                     = ABAP_TRUE
*     REPLACEMENT                     = '#'
*     WRITE_BOM                       = ' '
*     TRUNC_TRAILING_BLANKS_EOL       = 'X'
*     WK1_N_FORMAT                    = ' '
*     WK1_N_SIZE                      = ' '
*     WK1_T_FORMAT                    = ' '
*     WK1_T_SIZE                      = ' '
   IMPORTING
     filelength                      = file_size
    TABLES
      data_tab                        = pdf_tab
*     FIELDNAMES                      = 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.





*"Setting up Document Data Attribute...................................
  wa_doc_data-obj_langu  = sy-langu.
  wa_doc_data-obj_name   = 'Attachment'.
  wa_doc_data-obj_descr  = 'This is a Mail sent through SAP Report'.
  wa_doc_data-sensitivty = 'F'.
  wa_doc_data-doc_size   = w_tablines.


 t_attach_data = t_objcont.
 DESCRIBE TABLE t_attach_data LINES w_tablines.
*"Setting up Packing List Attributes...................................
  wa_pack-transf_bin = 'X'.
  wa_pack-head_start = 0.
  wa_pack-head_num   = 0.
  wa_pack-body_start = 0.
  wa_pack-body_num   = w_tablines.
  wa_pack-doc_size   = w_tablines *  255.
  wa_pack-doc_type   = 'PDF'.
  wa_pack-obj_name   = 'Attachment'.
  wa_pack-obj_descr  = 'This is a SAP Report'.


  APPEND wa_pack TO t_pack.



*"Setting up Receiver Attributes.......................................
  wa_receivers-receiver = w_email.
  wa_receivers-rec_type = 'U'.
  APPEND wa_receivers TO t_receivers.

  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
      document_data                    = wa_doc_data
     put_in_outbox                    = 'X'
*   SENDER_ADDRESS                   = SY-UNAME
*   SENDER_ADDRESS_TYPE              = 'B'
     commit_work                      = 'X'
* IMPORTING
*   SENT_TO_ALL                      = SENT_TO_ALL
*   NEW_OBJECT_ID                    = NEW_OBJECT_ID
*   SENDER_ID                        = SENDER_ID
    TABLES
      packing_list                     = t_pack
*   OBJECT_HEADER                    = OBJECT_HEADER
     contents_bin                     =  t_attach_data
*   CONTENTS_TXT                     = CONTENTS_TXT
*   CONTENTS_HEX                     = CONTENTS_HEX
*   OBJECT_PARA                      = OBJECT_PARA
*   OBJECT_PARB                      = OBJECT_PARB
      receivers                        = t_receivers
   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
            .

  IF sy-subrc EQ 0.
    WRITE: 'Mail Sent to '.
  ELSE.
    WRITE: 'Message Sending Failed'.
  ENDIF.                               " IF SY-SUBRC EQ 0.

ENDFORM.                    " otf_to_pdf.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  conversion_of_size
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM conversion_of_size .
*"Declaring Local Constants............................................
  CONSTANTS:
     cnv_hexconst_zero TYPE x VALUE '00'.

*"--------------------------------------------------------------------*
* Internal table to hold 255 Char's Single Line.                      *
*"--------------------------------------------------------------------*
  DATA:
    lv_big_lines(268) TYPE c
                      OCCURS 0 WITH HEADER LINE.

*"Local Work Variables.................................................
  DATA:
    lfl_flag          TYPE c,
    lv_left_t(268)    TYPE c,
    lv_left_i         TYPE i,
    tv_left_i         TYPE i,
    lv_curr_i         TYPE i.

  FIELD-SYMBOLS: &amp;lt;f&amp;gt;.

* Get the lines into a table of 268 char as the first step to put it in
* the pdf file of 255 chars
  CLEAR lfl_flag.

  LOOP AT pdf_tab INTO pdf_tab.

    IF lfl_flag EQ ' '.
      CLEAR lv_big_lines .
      ASSIGN lv_big_lines(134) TO &amp;lt;f&amp;gt;.
      &amp;lt;f&amp;gt; = pdf_tab.
      lfl_flag = 'X'.
    ELSE.
      lv_big_lines+134 = pdf_tab.
      APPEND lv_big_lines.
      CLEAR: lfl_flag.
    ENDIF.                             " If lfl_flag = ''..

  ENDLOOP.                             " Loop at t_pdf

  IF lfl_flag EQ 'X'.
    APPEND lv_big_lines.
  ENDIF.                               " If lflf_flag eq 'X'..

* Next fill it into a 255 char table
  CLEAR: lv_left_t, lv_left_i, tv_left_i.
  lv_curr_i = 255.

  LOOP AT lv_big_lines.
    IF lv_left_i NE 0.

      IF lv_curr_i NE 0.
        wa_objcont(lv_left_i)           = lv_left_t(lv_left_i).
        wa_objcont+lv_left_i(lv_curr_i) = lv_big_lines(lv_curr_i).
      ELSE.
        wa_objcont = lv_left_t(lv_left_i).
      ENDIF.                           " IF lv_curr_i NE 0

    ELSE.

      wa_objcont = lv_big_lines(lv_curr_i).

    ENDIF.                             " IF lv_left_i NE 0

    APPEND wa_objcont TO t_objcont.
    tv_left_i = 268 - lv_curr_i.

    IF tv_left_i &amp;gt; 255.
      wa_objcont = lv_big_lines+lv_curr_i(255).
      APPEND wa_objcont TO t_objcont.
      lv_left_i = tv_left_i - 255.
      tv_left_i = 255 + lv_curr_i.
      lv_curr_i = 255 - lv_left_i.
      lv_left_t = lv_big_lines+tv_left_i.
    ELSE.
      lv_left_t = lv_big_lines+lv_curr_i.
      lv_left_i = 268 - lv_curr_i.
      lv_curr_i = 255 - lv_left_i.
    ENDIF.                             " IF tv_left_i &amp;gt; 255

  ENDLOOP.                             " LOOP AT lv_big_lines.

  CLEAR wa_objcont .

  ASSIGN wa_objcont(lv_left_i) TO &amp;lt;f&amp;gt;.

  &amp;lt;f&amp;gt; = lv_left_t(lv_left_i).

  APPEND wa_objcont TO t_objcont.

ENDFORM.                    " conversion_of_size&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sandeep&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jul 2008 11:40:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-smartforms-and-sapscripts-through-email/m-p/4212691#M1006669</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-25T11:40:37Z</dc:date>
    </item>
  </channel>
</rss>

