PDA

Ver la Versión Completa : Tabla interna en el cuerpo del mail


minerva0112
15/07/11, 21:16:24
Hola a todos, estoy intentando enviar un email desde sap hacia Outlook
y colocar en el cuerpo el contenido de una tabla interna.
Lo que me sucede es que solo toma el ultimo valor de la tabla interna, a pesar de que hago un loop es la siguiente manera:
LOOP AT it_body.
SET PROPERTY OF APPITEM 'Body' = it_body.
ENDLOOP.

Porfavora quien me pueda orientar al respecto.

abapedro
16/07/11, 18:27:26
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

luis999
18/07/11, 16:32:31
Yo te recomiendo, mandar el cuerpo de mensaje como html, asi te queda mas presentable que mandarlo como string.