Hi Sai Ganesha,
Try like this
Just copy& past in se38 and run and see in SOST....
REPORT YZIP_MAIL.
*--------------------------------------------------------------------*
* I N T E R N A L T A B L E D E C L A R A T I O N *
*--------------------------------------------------------------------*
DATA : it_ctxt TYPE TABLE OF solisti1, " Internal Table For Character Text Format
it_pack TYPE TABLE OF sopcklsti1, " Internal Table For Packing Data
lt_att TYPE TABLE OF solisti1, " Internal Table For Character Binary Format
it_rec TYPE TABLE OF somlreci1, " Internal Table For Receivers List
it_smr TYPE swnc_t_statrecs,
it_data1 TYPE STANDARD TABLE OF sflight.
*--------------------------------------------------------------------*
* W O R K A R E A D E C L A R A T I O N *
*--------------------------------------------------------------------*
DATA : wa_ctxt TYPE solisti1, " Work Area For Character Text Data
wa_doc TYPE sodocchgi1, " Work Area For document
wa_pack TYPE sopcklsti1, " Work Area For Packed Data
wa_rec TYPE somlreci1, " Work Area For Receiver's Data
wa_data1 TYPE sflight,
wa_smr TYPE swncstatrec.
*--------------------------------------------------------------------*
* V A R I A B L E S *
*--------------------------------------------------------------------*
DATA : l_string1 TYPE string,
l_xstring1 TYPE xstring,
l_zipper TYPE REF TO cl_abap_zip,
filename TYPE string,
zip TYPE xstring,
w_binsize TYPE i,
l_count TYPE swncshcnt.
SELECT * FROM sflight INTO TABLE it_data1 UP TO 10 ROWS.
PERFORM creat_xls_files.
* --- ZIP the file
CREATE OBJECT l_zipper.
* --- Add file to zip
filename = 'Excel.xls'.
CALL METHOD l_zipper->add
EXPORTING
name = filename
content = l_xstring1.
CLEAR filename.
* --- Save zip
CALL METHOD l_zipper->save
RECEIVING
zip = zip.
* --- Convert Xstring into Binary
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = zip
* APPEND_TO_TABLE = ' '
* IMPORTING
* OUTPUT_LENGTH =
TABLES
binary_tab = lt_att.
IF sy-subrc <> 0. "#EC *
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*--------------------------------------------------------------------*
* SENDING MAILS *
*--------------------------------------------------------------------*
* --- for mail body
CONCATENATE sy-mandt 'Excel ZIP Report'(001) INTO wa_ctxt SEPARATED BY space.
APPEND wa_ctxt TO it_ctxt.
CLEAR wa_ctxt.
* --- for mail subject
wa_doc-obj_name = 'Excel ZIP'.
CONCATENATE sy-mandt 'Excel ZIP' INTO wa_doc-obj_descr SEPARATED BY space.
wa_doc-obj_langu = 'E'.
wa_doc-sensitivty = 'O'. "Standard
wa_doc-doc_size = w_binsize.
* --- for attahed file name
wa_pack-obj_name = 'Excel ZIP'.
CONCATENATE sy-mandt 'Excel.ZIP' INTO wa_pack-obj_descr.
wa_pack-transf_bin = space.
wa_pack-head_start = 1.
wa_pack-head_num = 1.
wa_pack-body_start = 1.
wa_pack-body_num = LINES( it_ctxt ).
wa_pack-doc_type = 'RAW'. "RAW type Data
APPEND wa_pack TO it_pack.
* --- for attahed file type
wa_pack-doc_size = w_binsize.
wa_pack-transf_bin = 'X'.
wa_pack-head_start = 1.
wa_pack-head_num = 1.
wa_pack-body_start = 1.
wa_pack-body_num = LINES( lt_att ).
wa_pack-doc_type = 'ZIP'. "ZIP Type data
APPEND wa_pack TO it_pack.
* --- for mail recipients
CLEAR wa_rec.
wa_rec-rec_type = 'U'. " Specification Of Receipient Type - ( To )
wa_rec-com_type = 'INT'. " Transmission Method (Fax, Telex, ...) - ( Internet)
wa_rec-receiver = 'ramesh@gamil.com'.
APPEND wa_rec TO it_rec.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = wa_doc
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = it_pack
contents_bin = lt_att
contents_txt = it_ctxt
receivers = it_rec
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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
MESSAGE 'Mail has been sent successfully!!!'(002) TYPE 'S'.
ENDIF.
**ENDIF.
*&---------------------------------------------------------------------*
*& Form CREAT_XLS_FILES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM creat_xls_files .
PERFORM get_xls_file1.
ENDFORM. " CREAT_XLS_FILES
*&---------------------------------------------------------------------*
*& Form GET_XLS_FILE1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_xls_file1 .
CLEAR l_string1.
CONCATENATE ''
'Airline Code'
'Flight Connection Number'
'Flight date'
'Local currency of airline'
'Aircraft Type'
cl_abap_char_utilities=>newline INTO l_string1 SEPARATED BY
cl_abap_char_utilities=>horizontal_tab.
* --- Internal table to attach
LOOP AT it_data1 INTO wa_data1.
CONCATENATE l_string1
wa_data1-carrid
wa_data1-connid
wa_data1-fldate
wa_data1-currency
wa_data1-planetype
cl_abap_char_utilities=>newline INTO l_string1 SEPARATED BY
cl_abap_char_utilities=>horizontal_tab.
ENDLOOP.
* --- Convert internal table into XSTRING
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = l_string1
* MIMETYPE = ' '
* ENCODING =
IMPORTING
buffer = l_xstring1
* EXCEPTIONS
* FAILED = 1
* OTHERS = 2
.
ENDFORM. " GET_XLS_FILE1
This is solution for your question in http://scn.sap.com/thread/3368807