sábado, 9 de agosto de 2014

Enviar un email en SAP con SO_NEW_DOCUMENT_SEND_API1

En este post os voy a comentar como podemos enviar un email en SAP de una forma muy sencilla. Utilizaremos el módulo de funciones SO_NEW_DOCUMENT_SEND_API1.

Este módulo de funciones nos da la posibilidad de enviar email a diferentes destinatarios, incluyendo asunto, cuerpo, destinatarios, etc. A continuación os dejo un ejemplo.

  DATAmaildata TYPE sodocchgi1.
  
DATAmailtxt TYPE TABLE OF solisti1 WITH HEADER LINE.
  
DATAmailrec TYPE TABLE OF somlrec90 WITH HEADER LINE.

  CLEARmaildatamailtxtmailrec.
  
REFRESHmailtxtmailrec.



Ahora rellenamos el asunto del email y el cuerpo. El contenido del cuerpo es una tabla donde podremos cargar tantas lineas como necesitemos.

  maildata-obj_name 'SAPRPT'.
  maildata
-obj_descr 'Asunto del email'.
  
maildata-obj_langu sy-langu.

  mailtxt
-line = 'Cuerpo del email...'.
  
APPEND mailtxt.


El siguiente paso es cargar la lista de destinatarios. En este caso hay solo uno, pero podriamos cargar los que fueran necesarios.

  mailrec-receiver 'emaildestino@mail.com'.
  ailrec
-rec_type 'U'. "La U indica que como destino estamos indicando un email
  
APPEND mailrec.



Finalmente ejecutamos el módulo de funciones pasando como parámetros los datos que hemos cargado previamente.

    CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
      
EXPORTING
        document_data              
maildata
        document_type              
'RAW'
        put_in_outbox              
'X'
        commit_work                
'X'
      
TABLES
        object_header              
mailtxt
        object_content             
mailtxt
        receivers                  
mailrec
      
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.

1 comentario: