REPORT zpptest28_mymail .
TABLES: kna1.
DATA : w_name(135).
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(35) var1 FOR FIELD s_name.
SELECT-OPTIONS :
s_name FOR w_name DEFAULT sy-uname NO INTERVALS.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(35) var2 FOR FIELD s_culist.
SELECT-OPTIONS :
* How many Customer's List you wish to mail?
s_culist FOR kna1-kunnr.
SELECTION-SCREEN END OF LINE.
INITIALIZATION.
var1 = 'Recipient Address'.
var2 = 'Customer No'.
s_culist-low = '10'.
s_culist-high = '50'.
APPEND s_culist.
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM f_send_mail.
*---------------------------------------------------------------------*
* Form f_send_mail
*---------------------------------------------------------------------*
FORM f_send_mail.
*Routine to send mail
* Data Declaration
DATA:
l_datum(10),
ls_docdata TYPE sodocchgi1,
lt_objpack TYPE TABLE OF sopcklsti1 WITH HEADER LINE,
lt_objhead TYPE TABLE OF solisti1 WITH HEADER LINE,
lt_objtxt TYPE TABLE OF solisti1 WITH HEADER LINE,
lt_objbin TYPE TABLE OF solisti1 WITH HEADER LINE,
lt_reclist TYPE TABLE OF somlreci1 WITH HEADER LINE,
lt_listobject TYPE TABLE OF abaplist WITH HEADER LINE,
l_tab_lines TYPE i,
l_att_type LIKE soodk-objtp.
* Inicio Enviar E-mail como Excel
constants:
c_nova_coluna type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
c_nova_linha type c value cl_abap_char_utilities=>CR_LF.
*faça um select / loop na tabela kna1
clear lt_objbin.
concatenate 'Coluna1' 'Coluna2' 'Coluna3' 'Coluna4' c_nova_linha INTO lt_objbin-line SEPARATED BY c_nova_coluna.
CONDENSE lt_objbin-line NO-GAPS.
APPEND lt_objbin.
clear lt_objbin.
concatenate 'Coluna1' 'Coluna2' 'Coluna3' 'Coluna4' c_nova_linha INTO lt_objbin-line SEPARATED BY c_nova_coluna.
CONDENSE lt_objbin-line NO-GAPS.
APPEND lt_objbin.
clear lt_objbin.
concatenate 'Coluna1' 'Coluna2' 'Coluna3' 'Coluna4' c_nova_linha INTO lt_objbin-line SEPARATED BY c_nova_coluna.
CONDENSE lt_objbin-line NO-GAPS.
APPEND lt_objbin.
clear lt_objbin.
concatenate 'Coluna1' 'Coluna2' 'Coluna3' 'Coluna4' c_nova_linha INTO lt_objbin-line SEPARATED BY c_nova_coluna.
CONDENSE lt_objbin-line NO-GAPS.
APPEND lt_objbin.
concatenate '1111111' '2222222' '3333333' '''4444444''' 'F' c_nova_linha INTO lt_objbin-line SEPARATED BY c_nova_coluna.
CONDENSE lt_objbin-line NO-GAPS.
APPEND lt_objbin.
*
* Final Enviar E-mail como Excel
* NOTE: Creation of attachment is finished yet.
* For your report, the attachment should be placed into table
* objtxt for plain text or
* objbin for binary content.
* Now create the message and send the document.
* Create Message Body
* Title and Description
ls_docdata-obj_name = 'Nome do anexo'.
CONCATENATE 'Lista de clientes' s_culist-high
INTO ls_docdata-obj_descr SEPARATED BY space.
* Main Text
lt_objtxt = 'Texto do corpo da mensagem'.
APPEND lt_objtxt.
* Write Packing List (Main)
DESCRIBE TABLE lt_objtxt LINES l_tab_lines.
READ TABLE lt_objtxt INDEX l_tab_lines.
ls_docdata-doc_size = ( l_tab_lines - 1 ) * 255 + STRLEN( lt_objtxt ).
CLEAR lt_objpack-transf_bin.
lt_objpack-head_start = 1.
lt_objpack-head_num = 0.
lt_objpack-body_start = 1.
lt_objpack-body_num = l_tab_lines.
lt_objpack-doc_type = 'RAW'.
APPEND lt_objpack.
* Create Message Attachment
* Write Packing List (Attachment)
l_att_type = 'XLS'.
DESCRIBE TABLE lt_objbin LINES l_tab_lines.
READ TABLE lt_objbin INDEX l_tab_lines.
lt_objpack-doc_size = ( l_tab_lines - 1 ) * 255 + STRLEN( lt_objbin ).
lt_objpack-transf_bin = 'X'.
lt_objpack-head_start = 1.
lt_objpack-head_num = 0.
lt_objpack-body_start = 1.
lt_objpack-body_num = l_tab_lines.
lt_objpack-doc_type = l_att_type.
lt_objpack-obj_name = 'ATTACHMENT'.
lt_objpack-obj_descr = 'Nome do anexo'. "#EC *
APPEND lt_objpack.
* Create receiver list
LOOP AT s_name.
lt_reclist-receiver = 'adilson.afl@gmail.com.br'.
lt_reclist-rec_type = 'U'.
* lt_reclist-receiver = s_name-low.
* lt_reclist-rec_type = 'B'.
APPEND lt_reclist.
ENDLOOP.
* Send Message
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = ls_docdata
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = lt_objpack
object_header = lt_objhead
contents_bin = lt_objbin
contents_txt = lt_objtxt
receivers = lt_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 = 0.
* Document sent
MESSAGE ID 'SO' TYPE 'S' NUMBER '022'.
ELSE.
* Document <&> could not be sent
MESSAGE ID 'SO' TYPE 'S' NUMBER '023'
WITH ls_docdata-obj_name.
ENDIF.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDFORM. " F_SEND_MAIL
Nenhum comentário:
Postar um comentário