Você está na página 1de 7

Lista de Distribuição

terça-feira, 28 de fevereiro de 2023


14:22
Lista de distribuição é luma listagem de e-mail que é utilizada para ser enviado um grupo de e-
mail no SAP. Assim é necessário informar somente o no do grupo que a mensagem será
enviada, através de programa, para todos os endereços de e-mail que ali constar.

Abaixo o passo-a-passo para criação de uma lista de distribuição.

Aceder a transação SBWP

Carregar no Botão Lista distribuição.


Tipo de Lista: Lista de Distribuição Geral

Carregue no botão criar. Aparecerá o ecrã abaixo:

Antes de tudo deves criar uma pasta para definir a Lista.

Carregue no SH do botão Pasta.


Abrirá o ecrã a seguir. Onde deves preencher o nome da pasta e seu título. Ainda marcar a
area da pasta com Geral. Após isso, carregar no botão Criar Pasta
O Ecrã a seguir abrirá e basta confirmar.

Com a pasta criada, preencha o nome e o título da lista de distribuição.

Carregue em guardar para finalizar a criação da Lista.

Agora abra a aba de conteúdo da lista de distribuição para adicionar a lista dos e-mails que
desejas
Repita este procedimento para cada lista deste janela que precisares criar, se necessário.

A sua lista de distribuição finalizará desta forma:

Exemplo de código para envio de e-mail usando a lista de distribuição


METHOD mail_err.

DATA:
ls_maildata TYPE sodocchgi1,
lt_reclist TYPE TABLE OF somlreci1,
lt_mailhdr TYPE TABLE OF solisti1.

DATA:
lt_mailtxt TYPE TABLE OF solisti1,
ls_mailtxt TYPE solisti1.

IF me->t_err IS NOT INITIAL.


ls_maildata-obj_name = TEXT-ass.
ls_maildata-obj_descr = TEXT-des.

DATA(lt_body) = me->fill_body( ).
DATA(li_lines) = lines( lt_body ).
DATA(ls_lasrl) = lt_body[ li_lines ].

ls_maildata-doc_size = ( ( li_lines - 1 ) * 255 ) +


strlen( ls_lasrl ).

APPEND VALUE #( line = 'ZSD_FAT_MN.HTM' ) TO lt_mailhdr.

APPEND VALUE #( receiver = 'ZSD_FAT_MN'


rec_type = 'C' ) TO lt_reclist.

CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'


EXPORTING
document_data = ls_maildata
document_type = 'HTM'
put_in_outbox = 'X'
commit_work = 'X'
TABLES
object_content = lt_body
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.
sy-subrc = 0.
ENDIF.
ENDIF.

ENDMETHOD.

METHOD fill_body.

DATA:
lt_body TYPE ty_body_t.

DATA(lc_data) = | { sy-datum+6(2) }.{ sy-datum+4(2) }.{ sy-


datum(4) } |.

DATA(lc_hora) = | { sy-uzeit(2) }:{ sy-uzeit+2(2) }|.

APPEND VALUE #( line = '<html>' ) TO r_body.


APPEND VALUE #( line = '<head>' ) TO r_body.
APPEND VALUE #( line = '<title>' ) TO r_body.
APPEND VALUE #( line = TEXT-ass ) TO r_body.
APPEND VALUE #( line = '</title>' ) TO r_body.
APPEND VALUE #( line = '</head>' ) TO r_body.
APPEND VALUE #( line = '<body>' ) TO r_body.
APPEND VALUE #( line = '<p>' ) TO r_body.

APPEND VALUE #( line = TEXT-ln1 ) TO r_body.


APPEND VALUE #( line = lc_data ) TO r_body.

APPEND VALUE #( line = TEXT-ln2 ) TO r_body.


APPEND VALUE #( line = lc_hora ) TO r_body.

APPEND VALUE #( line = '</p>' ) TO r_body.

APPEND VALUE #( line = '<p>' ) TO r_body.


APPEND VALUE #( line = TEXT-ln3 ) TO r_body.
APPEND VALUE #( line = '</p>' ) TO r_body.
APPEND VALUE #( line = '<table border = "1">' ) TO r_body.
APPEND VALUE #( line = '<tr>' ) TO r_body.
APPEND VALUE #( line = '<th>' ) TO r_body.
APPEND VALUE #( line = TEXT-enc ) TO r_body.
APPEND VALUE #( line = '</th>' ) TO r_body.
APPEND VALUE #( line = '<th>' ) TO r_body.
APPEND VALUE #( line = TEXT-rem ) TO r_body.
APPEND VALUE #( line = '</th>' ) TO r_body.
APPEND VALUE #( line = '<th>' ) TO r_body.
APPEND VALUE #( line = TEXT-msg ) TO r_body.
APPEND VALUE #( line = '</th>' ) TO r_body.
APPEND VALUE #( line = '</tr>' ) TO r_body.

LOOP AT me->t_err INTO DATA(ls_err).


APPEND VALUE #( line = '<tr>') TO r_body.
APPEND VALUE #( line = '<td>') TO r_body.
APPEND VALUE #( line = ls_err-encom ) TO r_body.
APPEND VALUE #( line = '</td>') TO r_body.
APPEND VALUE #( line = '<td>') TO r_body.
APPEND VALUE #( line = ls_err-remes ) TO r_body.
APPEND VALUE #( line = '</td>') TO r_body.
APPEND VALUE #( line = '<td>') TO r_body.
APPEND VALUE #( line = ls_err-msg ) TO r_body.
APPEND VALUE #( line = '</td>') TO r_body.
APPEND VALUE #( line = '</tr>') TO r_body.
ENDLOOP.

APPEND VALUE #( line = '</table>' ) TO r_body.


APPEND VALUE #( line = '</body>' ) TO r_body.
APPEND VALUE #( line = '</html>' ) TO r_body.

ENDMETHOD.

Chamada do metodo no codigo ABAP


me->envia_email(
i_sender = TEXT-snd
i_subjct = TEXT-sub
i_outtab = lt_outtab
i_alt_v = li_alt_v
i_alt_a = li_alt_a
).

DEFINIÇÃO

envia_email
IMPORTING
VALUE(i_sender) TYPE adr6-smtp_addr
VALUE(i_subjct) TYPE ty_subjct
VALUE(i_outtab) TYPE ty_outtab_t
VALUE(i_alt_v) TYPE i
VALUE(i_alt_a) TYPE i
RETURNING
VALUE(r_suc) TYPE flag

IMPLEMENTAÇÃO

METHOD envia_email.
DATA:
lt_objhead TYPE p08_solisti1_tab,

ls_maildata TYPE sodocchgi1.

"Criação do documento para ser enviado


ls_maildata-obj_name = i_subjct.
ls_maildata-obj_descr = i_subjct.

DATA(lt_body) = fill_msesage_body(
EXPORTING
i_outtab = i_outtab
i_alt_v = i_alt_v
i_alt_a = i_alt_a
).

* DESCRIBE TABLE lt_objtxt LINES ld_tablines.


DATA(li_lines) = lines( lt_body ).
TRY.
DATA(ls_body) = lt_body[ li_lines ].

ls_maildata-doc_size = ( li_lines - 1 ) * 255 + strlen( ls_bod


y ).
CATCH cx_sy_itab_line_not_found INTO DATA(lo_subrc).

ENDTRY.

DATA(lt_objpack) = VALUE sopcklsti1_t(


(
transf_bin = space
head_start = 1
head_num = 0
body_start = 1
body_num = li_lines
doc_type = 'RAW'
)
).

DATA(lt_reclist) = VALUE somlreci1_t(


(
receiver = 'ZMM_CADUC'
express = 'X'
rec_type = 'C'
)
).

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'


EXPORTING
document_data = ls_maildata
sender_address = 'noreply@symington.com'
sender_address_type = 'INT'
commit_work = 'X'
TABLES
packing_list = lt_objpack
object_header = lt_objhead
contents_txt = lt_body
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 EQ 0.
MESSAGE i006(zmm) WITH TEXT-s01 DISPLAY LIKE 'S'.
r_suc = 'X'.
ELSE.
MESSAGE i006(zmm) WITH TEXT-e01 DISPLAY LIKE 'E'.
ENDIF.

ENDMETHOD.

Você também pode gostar