SEND EMAIL: SO_NEW_DOCUMENT_SEND_API1
Hola a todos a la comunidad de SAP, en esta oportunidad veremos como enviar un correo electrónico (e-mail) a un destinatario y con copia a otros destinatarios.
El usuario con que te logueaste en el sistema SAP será el usuario emisor del correo electrónico:
Tcode: SU01
La dirección del correo electrónico que observamos desde la tcode SU01 también lo podemos observar en la tabla ADR6-SMTP_ADDR, veamos como realizar esta consulta:
Ingresamos a la Tcode: SE16
Consultamos la tabla USR21 ingresando nuestro usuario; en mi caso es: AALCANTARA
Como resultado obtendremos los siguientes datos:
- USR21-PERSNUMBER: Nro Persona
- USR21-ADDRNUMBER: Nro dirección
Con los datos de Nro.Direc. y Nro.Persona ingresamos a la tabla ADR6 y como resultado obtendremos la dirección del correo electrónico (ADR6-SMTP_ADDR)
Veamos el código fuente
*----------------------------------------------------------------------*
*Declaration internal tables *----------------------------------------------------------------------* DATA: gt_receivers LIKE somlreci1 OCCURS 1 WITH HEADER LINE,
gt_obj_content LIKE solisti1 OCCURS 1 WITH HEADER LINE.
*----------------------------------------------------------------------*
*Declaration structures
*----------------------------------------------------------------------*
DATA: gs_doc_data LIKE sodocchgi1.
*----------------------------------------------------------------------*
*ASUNTO
*----------------------------------------------------------------------*
gs_doc_data-obj_langu = sy-langu.
gs_doc_data-obj_name = 'SAPRPT'.
gs_doc_data-obj_descr = 'TEST'.
gs_doc_data-sensitivty = 'F'.
*----------------------------------------------------------------------*
*CUERPO DEL MENSAJE
*----------------------------------------------------------------------*
gt_obj_content-line = 'CUERPO DEL MENSAJE - INI'.
APPEND gt_obj_content.
gt_obj_content-line = ''.
APPEND gt_obj_content.
gt_obj_content-line = 'CUERPO DEL MENSAJE - FIN'.
APPEND gt_obj_content.
*----------------------------------------------------------------------*
*DESTINATARIOS
*----------------------------------------------------------------------*
*A
gt_receivers-receiver = 'amalcantaraq@gmail.com'. "Nombre de destinatario mensaje.
gt_receivers-rec_type = 'U'. "Tipo de destinatario, en caso de se U envía a un correo convencional.
gt_receivers-express = 'X'. "Enviar: En forma de documento urgente.
gt_receivers-notif_ndel = 'X'. "Acuse de Recibo.
APPEND gt_receivers.
*CC
gt_receivers-receiver = 'magalexsis@gmail.com'."Nombre de destinatario mensaje.
gt_receivers-rec_type = 'U'. "Tipo de destinatario, en caso de se U envía a un correo convencional.
gt_receivers-express = 'X'. "Enviar: En forma de documento urgente.
gt_receivers-notif_ndel = 'X'. "Acuse de Recibo.
gt_receivers-copy = 'X'. "Con copia al siguiente destinatario
APPEND gt_receivers.
*&----------------------------------------------------------------------------*
* EJECUTANDO: SO_NEW_DOCUMENT_SEND_API1
*&----------------------------------------------------------------------------*
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
document_data = gs_doc_data "Asunto del mensaje
document_type = 'RAW'
put_in_outbox = 'X' "Deja una copia en la salida’
commit_work = 'X'
TABLES
object_content = gt_obj_content "Cuerpo del mensaje
receivers = gt_receivers "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.
WAIT UP TO 2 SECONDS.
IF sy-subrc EQ 0.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDIF.
Una vez ejecutado el programa ingresamos a la Tx: SOST
Y vemos que el status del mensaje es correcto, anunciandonos que el destinatario es válido y que se intentará el envío.
Lo cual es cierto ya que al ingresar a mi correo electrónico, compruebo de que tengo un nuevo mensaje:
Y sale el correo de magalexsis@gmail.como como CC tal como fue indicado en el código
Veamos el contenido del mensaje:
MAGALEX
Buenos dias , muy buen manual , me sirvio de mucho
ResponderEliminarQueria realizarte una consulta, será posible que en vez de tener 2 registros en la TX SOST es posible tener solo uno
Mil y mil gracias. Me ayudo muchisimo !!!!
ResponderEliminar