Envio email contenido tabla interna
Hola minerva0112,
Te sugiero utilizar la clase:
cl_document_bcs
ejemplo:
DATA: mensaje TYPE REF TO cl_bcs.
El cuerpo del mensaje se debe incluir en una tabla del tipo: bcsy_text
ejemplo:
DATA: texto_mensaje TYPE bcsy_text.
Es simplemente una tabla con un solo campo que es de 255 caracteres.
Habría que transferir la tabla interna a la del cuerpo del mensaje (texto_mensaje), convirtiendo cada registro de la interna en un string antes de pasarlo al respectivo registro de la tabla del cuerpo (texto_mensaje).
Después se crea un "documento", así:
DATA: documento TYPE REF TO cl_document_bcs.
documento = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = texto_mensaje
i_length = '12'
i_subject = asunto ).
En donde "asunto" es un string que contiene el texto que aparecerá como "referencia" en el mensaje.
Luego se crea el mensaje:
mensaje = cl_bcs=>create_persistent( ).
Luego se le asigna el cuerpo así:
CALL METHOD mensaje->set_document( documento ).
El destinatario se define usando:
recipient = cl_cam_address_bcs=>create_internet_address(
'buzon_destino@vialactea.com' ).
CALL METHOD mensaje->add_recipient
EXPORTING
i_recipient = recipient
i_express = 'X'.
El remitente se define usando:
sender = cl_cam_address_bcs=>create_internet_address('buzon_remitente@vialactea.com')
mensaje->set_sender( i_sender = sender ).
Ya el mensaje está listo y se puede enviar:
call method mensaje->send_without_dialog.
Adicionalmente, se pueden adicionar anexos al mensaje usando:
call method documento->add_attachment
Observa que el anexo se adiciona al 'documento', no al 'mensaje' (antes de asignar el documento al mensaje).
Espero que esta pequeña explicación te sirva.
Abapedro
|