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                                           
*----------------------------------------------------------------------*
DATAgt_receivers   LIKE somlreci1 OCCURS WITH HEADER LINE,
            gt_obj_content LIKE solisti1 OCCURS WITH HEADER LINE.

*----------------------------------------------------------------------*
*Declaration structures                                                  
*----------------------------------------------------------------------*

DATAgs_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 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:


Nos vemos en el siguiente Blog :)
MAGALEX

Comentarios

  1. Buenos dias , muy buen manual , me sirvio de mucho

    Queria realizarte una consulta, será posible que en vez de tener 2 registros en la TX SOST es posible tener solo uno

    ResponderEliminar
  2. Mil y mil gracias. Me ayudo muchisimo !!!!

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Modificando Vista de Actualización SM30

User Exit para VA01 y VA02

Buttons and events in ALV GRID and ALV GRID OO