파일 메일(e-mail) 첨부로 보내기

REPORT  zemail.

DATAc(50).
DATAsent LIKE sonvflag.
DATAemail_id LIKE sofolenti1object_id.
DATABEGIN OF email_data.
        INCLUDE STRUCTURE sodocchgi1.
DATAEND OF email_data.
DATABEGIN OF email_send OCCURS 10.
        INCLUDE STRUCTURE somlreci1.
DATAEND OF email_send.
DATABEGIN OF email_text OCCURS 10.
        INCLUDE STRUCTURE solisti1.
DATAEND OF email_text.
DATAftab LIKE solisti1  OCCURS WITH HEADER LINE.
DATA act_filetype LIKE  rlgrapfiletype.
DATA act_filename LIKE  rlgrapfilename.

SELECT-OPTIONS send_to FOR NO INTERVALS LOWER CASE.
SELECTION-SCREEN SKIP.
PARAMETERSsubject(30).
SELECTION-SCREEN SKIP.
PARAMETERSfile LIKE rlgrapfilename DEFAULT ‘c:temp’.
SELECTION-SCREEN SKIP.
PARAMETERSl1(84).
PARAMETERSl2(84).
PARAMETERSl3(84).
PARAMETERSl4(84).
PARAMETERSl5(84).
PARAMETERSl6(84).
PARAMETERSl7(84).
PARAMETERSl8(84).
PARAMETERSl9(84).

INITIALIZATION.
  send_tolow ‘@.’.
  APPEND send_to.

START-OF-SELECTION.
  PERFORM upload.
  PERFORM send.

END-OF-SELECTION.

*———————————————————————*
*       FORM SEND                                                     *
*———————————————————————*
*       ……..                                                      *
*———————————————————————*
FORM send.
  email_textline l1.
  APPEND email_text.
  email_textline l2.
  APPEND email_text.
  email_textline l3.
  APPEND email_text.
  email_textline l4.
  APPEND email_text.
  email_textline l5.
  APPEND email_text.
  email_textline l6.
  APPEND email_text.
  email_textline l7.
  APPEND email_text.
  email_textline l8.
  APPEND email_text.
  email_textline l9.
  APPEND email_text.

  email_dataobj_name ‘MESSAGE’.
  email_dataobj_descr subject.
  email_dataobj_langu ‘E’.
  email_datasensitivty ‘P’.
  email_dataobj_prio ‘1’.
  email_datano_change ‘X’.
  email_datapriority ‘1’.

  LOOP AT send_to.
    email_sendreceiver send_tolow.
    email_sendrec_type ‘U’.
    email_sendcom_type ‘INT’.
    email_sendexpress ‘X’.
    APPEND email_send.
  ENDLOOP.

  WRITE:‘End of program’.

*****************************************************

  DATA lines TYPE i,
         f_lines TYPE i.
  DATA e_packing_tab LIKE sopcklsti1 OCCURS WITH HEADER LINE.

*
  DESCRIBE TABLE email_text LINES lines.
  e_packing_tabtransf_bin space.
  e_packing_tabhead_start 1.
  e_packing_tabhead_num   0.
  e_packing_tabbody_start 1.
  e_packing_tabbody_num   lines.
  e_packing_tabdoc_type   ‘RAW’.
  APPEND e_packing_tab.

  DESCRIBE TABLE ftab LINES f_lines.
  DATA doc_size TYPE i.
  doc_size f_lines * 255.

  DATAobjhead LIKE solisti1 OCCURS WITH HEADER LINE.
  objhead act_filenameAPPEND objhead.

  DATAdoc_type(3).
  SPLIT act_filename AT ‘.’ INTO act_filename doc_type.

  e_packing_tabtransf_bin ‘X’.
  e_packing_tabhead_start 1.
  e_packing_tabhead_num   1.
  e_packing_tabbody_start 1.
  e_packing_tabbody_num   f_lines.
  e_packing_tabdoc_type   doc_type.
  e_packing_tabobj_name   ‘obj name’.
  e_packing_tabobj_descr  ‘obj desc’.
  e_packing_tabdoc_size   doc_size.
  APPEND e_packing_tab.

  CALL FUNCTION ‘SO_NEW_DOCUMENT_ATT_SEND_API1’
    EXPORTING
      document_data                    email_data
      put_in_outbox                    ‘X’
      commit_work ‘X’
    IMPORTING
      sent_to_all                      sent
      new_object_id                    email_id
    TABLES
      packing_list                     e_packing_tab
      object_header                    objhead
      contents_bin                     ftab
      contents_txt                     email_text
*     CONTENTS_HEX                     =
*     OBJECT_PARA                      =
*     OBJECT_PARB                      =
      receivers                        email_send
    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 sysubrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  WRITE:/ email_id.
  WRITE:/ sent.
  WRITE:/ sysubrc.

ENDFORM.                    ” SEND
*———————————————————————*
*       FORM UPLOAD                                                   *
*———————————————————————*
*       ……..                                                      *
*———————————————————————*
FORM upload.

  CALL FUNCTION ‘UPLOAD’
    EXPORTING
*     CODEPAGE                      = ‘ ‘
      filename                      file
      filetype                      ‘BIN’
*     ITEM                          = ‘ ‘
*     FILEMASK_MASK                 = ‘ ‘
*     FILEMASK_TEXT                 = ‘ ‘
*     FILETYPE_NO_CHANGE            = ‘ ‘
*     FILEMASK_ALL                  = ‘ ‘
*     FILETYPE_NO_SHOW              = ‘ ‘
*     LINE_EXIT                     = ‘ ‘
*     USER_FORM                     = ‘ ‘
*     USER_PROG                     = ‘ ‘
*     SILENT                        = ‘S’
    IMPORTING
*     FILESIZE                      =
*     CANCEL                        =
      act_filename                  act_filename
      act_filetype                  act_filetype
    TABLES
      data_tab                      ftab
*   EXCEPTIONS
*     CONVERSION_ERROR              = 1
*     INVALID_TABLE_WIDTH           = 2
*     INVALID_TYPE                  = 3
*     NO_BATCH                      = 4
*     UNKNOWN_ERROR                 = 5
*     GUI_REFUSE_FILETRANSFER       = 6
*     OTHERS                        = 7
            .
  IF sysubrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  DATATYPE i,
        j TYPE i.
  STRLENact_filename ).
  DO TIMES.
    j – syindex 1.
    IF act_filename+j(1.
      j j + 1.
      act_filename act_filename+j.
      EXIT.
    ENDIF.
  ENDDO.
  WRITE:/ act_filename,
          act_filetype.

ENDFORM.                    ” UPLOAD


2 Comments

avatar

좋은자료 감사합니다~

avatar

감사합니다. 유용하게 잘 쓰겠습니다.^^

Leave a Reply