MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Mail a varios Destinatarios (foro/showthread.php?t=32127)

dpalavecino 03/09/09 14:36:03

Mail a varios Destinatarios
 
Buenos dias a todos, le comento que estoy teniendo problemas para enviar correos a Varios destinatarios ya que si le paso como parametro mas de una direccion de correo cancela en programa.
Agradeceria si alguien me puede orientar un poco.
Saludos

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_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.

Demian M. Palavecino

martin89 03/09/09 16:42:20

Que tal,

mirá yo para enviar correos use esta función

* Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
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
operation_no_authorization = 4
OTHERS = 99.


IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.


donde en la tabla LT_RECLIST le paso los destinatarios
(la completé de esta manera). Seguramente vas a tener qe cambiar el campo REC_TYPE proqe yo use una lista de distribución.

LOOP AT lt_mails INTO le_mails.
lt_reclist-receiver = le_mails-grupo. "NOMBRE DE LA LISTA
lt_reclist-express = 'X'.
lt_reclist-rec_type = 'C'. "Usa lista de distribución.
lt_reclist-copy = 'X'.
APPEND lt_reclist.
ENDLOOP.




saludos!

darona 07/09/09 16:36:48

Esa es la buena
 
La función buena es la que usa Martin89, ya que usa una estructura para los destinatarios a la que puedes añadir todos los que quieras (además puede enviar documentos adjuntos).

Si prefieres seguir usando la tuya tendrás que crearte una tabla interna o rango en el que introducir todos los destinatarios y hacer un loop para ir cambiando el destinatario, pero eso lo que hará es enviar el mismo mail varias veces, no un único mail a todos los destinatarios.

Espero que te haya servido de ayuda.

Saludos,
David.

fvergara 02/10/09 21:10:37

Consulta maestros
 
Es posible tener un ejemplo de código de abap agradeceria mucho recien me inicio en el tema de abap y no veo un ejemplo mas completo.

Gracias de antemano

nievesmp 05/10/09 11:15:18

form rellena_destinatarios
tables receptores structure somlreci1
changing sw_alguno.
*
data: begin of usu_rec occurs 2,
email like zsd_info_interf-email,
end of usu_rec.
sw_alguno = 'X'.
clear receptores.
* receptores-receiver = usu_rec-email.
receptores-receiver = 'usuario@prueba.com'.
receptores-rec_type = 'U'. "dirección internet
receptores-express = 'X'.
append receptores.
sw_alguno = 'X'.
clear receptores.
* receptores-receiver = usu_rec-email.
receptores-receiver = 'usuario@prueba.com'.
receptores-rec_type = 'U'. "dirección internet
receptores-express = 'X'.
append receptores.

endform. "rellena_destinatarios
* Aqui se acaban de cargar dos destinatarios, también se puede hacer con un loop direccionando a una tabla.

* En la parte donde pases la funcíon pasa la tabla de dsitinatarios:


call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
exporting
document_data = dat_asunto
put_in_outbox = 'X'
*>>>>>>>>> OJO: cuando es a una dirección externa es necesario activar
* el commit work; sino no se enviará nada:
commit_work = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
tables
packing_list = dat_pack
object_header = dat_cab
contents_bin = dat_bin
contents_txt = dat_cuerpo
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = receptores " Aquí va la tabla de destinatarios
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.

endform. "ENVIA_MENSAJE

ALNICO 05/10/09 13:40:37

Saludos a todos y disculpen la intromision , pero ya que estan hablando de esta funcion me parecio pertinente pedir ayuda con este referente , estoy tratando de automatizar la transaccion sost que es donde va el correo una vez que se usa la funcion que se habla aqui , ahora el problema es que por mas que hago la grabacion no procesa el envio , podrian darme algunos tips o decirme como podria hacerlo ( sin neceisdad de job ) porque lo que se quiere que una vez que se envie envie el correo usando la funcion esta salga de una vez sin tener que esperar en sost .

Belerophonte 11/11/09 23:06:31

Envio de correo a diferentes destinatarios
 
Hola a todos yo utilice lo siguiente, saludos

FORM send .
DATA lv_texto(30) TYPE c.

REFRESH main_text.

TRY.

* -------- create persistent send request ------------------------
send_request = cl_bcs=>create_persistent( ).

* -------- create and set document with attachment ---------------
* create document object from internal table with text
APPEND 'Pedidos próximos a vencer y vencidos' TO main_text.
CONCATENATE 'Grupo de Compras:' gc_tab
gv_ekgrp gc_tab
INTO lv_texto.
APPEND lv_texto TO main_text.
APPEND 'El contenido del reporte esta incluido en el archivo anexo' TO main_text.

document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = main_text
i_subject = 'Pedidos próximos a vencer y vencidos' ).

* add the spread sheet as attachment to document object
document->add_attachment(
i_attachment_type = 'xls'
i_attachment_subject = 'Pedidos'
i_attachment_size = size
i_att_content_hex = binary_content ).

* add document object to send request
send_request->set_document( document ).

* --------- add recipient (e-mail address) -----------------------
* create recipient object
LOOP AT t_mailto INTO w_mailto.
recipient = cl_cam_address_bcs=>create_internet_address( w_mailto-mailto ).
* add recipient object to send request
send_request->add_recipient( recipient ).
ENDLOOP.



* ---------- send document ---------------------------------------
sent_to_all = send_request->send( i_with_error_screen = 'X' ).

COMMIT WORK.

IF sent_to_all IS INITIAL.
MESSAGE i500(sbcoms) WITH mailto.
ELSE.
MESSAGE s022(so).
ENDIF.

* ------------ exception handling ----------------------------------
* replace this rudimentary exception handling with your own one !!!
CATCH cx_bcs INTO bcs_exception.
MESSAGE i865(so) WITH bcs_exception->error_type.
ENDTRY.
ENDFORM. " SEND

yapbig 12/11/09 11:59:05

ALNICO:
Luego de que se ejecute todo el código que genera tu correo agrega el siguiente código y se va a enviar el mismo

SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.

Saludos cordiales,

sereyo 02/06/11 10:03:50

hola,

quería haceros una consulta. Tengo el código tal y como lo tenéis puesto aquí para enviar un mail a varios destinatarios. El proble es que cuando se envían, lo hace correctamente, pero si yo entro en la SOST a visualizar el correo, veo que me crea un correo por cada destinatario que le paso a la función SO_DOCUMENT_SEND_API1.
En cada correo me pone la lista de destinatarios correcta, pero ¿por qué manda tantos correos como destinatarios? ¿me podrían ayudar?

Un saludo.

sereyo 02/06/11 10:04:47

duda mail variso destinatarios
 
hola,

quería haceros una consulta. Tengo el código tal y como lo tenéis puesto aquí para enviar un mail a varios destinatarios. El proble es que cuando se envían, lo hace correctamente, pero si yo entro en la SOST a visualizar el correo, veo que me crea un correo por cada destinatario que le paso a la función SO_DOCUMENT_SEND_API1.
En cada correo me pone la lista de destinatarios correcta, pero ¿por qué manda tantos correos como destinatarios? ¿me podrían ayudar?

Un saludo.

ixtellop 17/08/12 15:20:53

Drp
 
[hola

Alguie Me Puede Auxiliar Para Saber Como Funcona La Transaccion Drps


Husos Horarios son GMT. La hora en este momento es 20:11:03.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web