Tabla interna en el cuerpo del mail

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • minerva0112
    Senior Member
    • nov
    • 116

    #1

    Tabla interna en el cuerpo del mail

    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
    Member
    • mar
    • 83

    #2
    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

    Comentario

    • luis999
      Member
      • jun
      • 82

      #3
      Yo te recomiendo, mandar el cuerpo de mensaje como html, asi te queda mas presentable que mandarlo como string.

      Comentario

      Trabajando...