Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Mail attachment

Former Member
0 Kudos

Hi Friends..

Iam using Function module..SO_NEW_DOCUMENT_ATT_SEND_API1

to attach a file and send a mail to SAP user..

in my program everything is ok..

But in attachment..

all the records are stored in single line..

why this problem arise..

and how can i solve this...

Plz anyone help me,,

Thanks in Advance..

Gowrishankar

3 REPLIES 3

Former Member
0 Kudos

hi,

Chk this sample code.

FUNCTION zsend_mail_attachment.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(V_FILE_PATH) TYPE  STRING OPTIONAL
*"     REFERENCE(V_SUBJECT) TYPE  SO_OBJ_DES
*"  TABLES
*"      IT_RECEIVERS STRUCTURE  SOMLRECI1
*"      IT_MESSAGE STRUCTURE  SOLISTI1
*"----------------------------------------------------------------------
 
  DATA: gd_cnt TYPE i,
        gd_sent_all(1) TYPE c,
        gd_doc_data LIKE sodocchgi1,
        gd_error TYPE sy-subrc.
 
  DATA objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE.
 
  DATA : it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
 
* Binary store for File
  DATA : BEGIN OF it_file OCCURS 0,
           row(255),
         END OF it_file.
 
* splitting of the filepath
  DATA : BEGIN OF i_split OCCURS 0,
           row(50),
         END OF i_split.
 
  DATA tab_lines LIKE sy-tabix.
 
  REFRESH : it_file, objbin, it_packing_list, i_split.
  CLEAR   : it_file, objbin, it_packing_list, i_split.
 
  DESCRIBE TABLE it_message LINES tab_lines.
  READ     TABLE it_message INDEX tab_lines.
 
  gd_doc_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( it_message ).
  gd_doc_data-obj_langu  = sy-langu.
  gd_doc_data-obj_name   = 'SENDFILE'.
  gd_doc_data-obj_descr  = v_subject.
  gd_doc_data-sensitivty = 'O'.
 
  CLEAR it_packing_list.
 
  it_packing_list-head_start = 1.
  it_packing_list-head_num   = 0.
  it_packing_list-body_start = 1.
  it_packing_list-doc_type   = 'RAW'.
  it_packing_list-body_num   = tab_lines.
  APPEND it_packing_list.
 
  IF v_file_path IS NOT INITIAL.
    DATA : v_len      TYPE i,
           v_index    LIKE sy-index,
           v_doc_type TYPE  so_obj_tp,
           v_filename TYPE  so_obj_des .
 
    v_len = STRLEN( v_file_path ) - 3.
    v_doc_type = v_file_path+v_len(3) .
    TRANSLATE v_doc_type TO UPPER CASE .
 
    SPLIT v_file_path AT '' INTO TABLE i_split .
    DESCRIBE TABLE i_split LINES v_index .
    READ TABLE i_split INDEX v_index .
    v_filename = i_split-row .
    v_len = STRLEN( v_filename ) - 4.
    v_filename = v_filename(v_len) .
 
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename = v_file_path
        filetype = 'BIN'
      TABLES
        data_tab = it_file.
 
    LOOP AT it_file.
      MOVE it_file-row TO objbin-line.
      APPEND objbin.
    ENDLOOP.
 
    CLEAR it_packing_list.
 
    DESCRIBE TABLE objbin LINES tab_lines.
 
    it_packing_list-transf_bin = 'X'.
    it_packing_list-head_start = 1.
    it_packing_list-head_num   = 1.
    it_packing_list-body_start = 1.
    it_packing_list-doc_type   = v_doc_type.
    it_packing_list-body_num   = tab_lines.
    it_packing_list-doc_size   = tab_lines * 255.
    it_packing_list-obj_descr  = v_filename.
    APPEND it_packing_list.
  ENDIF.
 
*  it_receivers-receiver = 'xyz@yahoo.com'.
*  it_receivers-rec_type = 'U'.
*  it_receivers-com_type = 'INT'.
*  APPEND it_receivers .
 
* Call the FM to post the message to SAPMAIL
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data = gd_doc_data
      put_in_outbox = 'X'
      commit_work   = 'X'
*   IMPORTING
*     sent_to_all = gd_sent_all
    TABLES
      packing_list = it_packing_list
      contents_txt = it_message
      contents_bin = objbin
      receivers    = it_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
      OTHERS                     = 8.
 
ENDFUNCTION.

Rgds

Reshma

Former Member
0 Kudos

Hi Reshma..

Something missed in your coding..

it shows an error like this..

It_message is not declared..

0 Kudos

hi,

Decalre an iternal tabkle like this.

Data : It_message LIKE solisti1 OCCURS 10 WITH HEADER LINE.

and test the same.

Rgds

Reshma