¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo cambiar la extensión de un archivo adjunto en CL_BCS para enviar correos electrónicos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 28 Vistas
0
Cargando...

Estoy usando la clase CL_BCS para enviar correos electrónicos. Tengo un archivo de texto delimitado por comas, necesito enviarlo como un archivo adjunto de correo electrónico. Todo está bien, pero la extensión del archivo adjunto se muestra como .TXT en lugar de .CSV

¿Cómo puedo cambiar esto?


            document = cl_document_bcs=>create_document(
                                          i_type    = 'RAW'
                                          i_text = i_content[]
                                          i_subject = psubject ).
            call method document->add_attachment
              exporting
                i_attachment_type    = 'RAW'
                i_attachment_subject = 'Y_GEMR_REPORT.CSV'
                i_att_content_text   = i_attach[].

Aquí en el correo electrónico se muestra el archivo adjunto como Y_GEMR_REPORT.CSV.TXT

¿Alguna información?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

¿Alguna información?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Mike, gracias por tu respuesta.

Intenté usar i_attachment_type con los valores CSV XLS WIN, pero después de usarlos, el contenido de mis adjuntos aparece en una sola línea en una columna. No se ajusta correctamente en diferentes columnas.

Pero si uso RAW en los adjuntos, los datos se colocan correctamente en columnas al abrirlos en Excel. Lo único que el usuario debe hacer es al guardar el adjunto del correo, renombrarlo como .CSV, luego todo está bien.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

No estoy utilizando el tipo 'RAW', pero siempre estoy usando el tipo de extensión real para los documentos que estoy enviando de esta manera:

CALL METHOD ir_document->add_attachment

EXPORTING

i_attachment_type = lv_type

i_attachment_subject = lv_subject

i_attachment_size = lv_size

  • I_ATTACHMENT_LANGUAGE = SPACE

  • I_ATT_CONTENT_TEXT =

i_att_content_hex = lt_content

  • I_ATTACHMENT_HEADER =

y lv_type se determina de la siguiente manera:

lv_type = lw_file_access_info-file_name+lv_length(3).

y para create_document hago esto:

  • Crear documento.

document = cl_document_bcs->create_document(

i_type = 'RAW'

i_text = it_text

  • i_length = l_strlen

Editado por: Micky Oestreich el 24 de abril de 2008 a las 7:51 p.m.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi a®s,

Check the below code



        FIELD-SYMBOLS: <lfs_table>,    " Estructura de tabla interna
        <lfs_con>.      " Contenido del campo
        DATA: l_text TYPE char1024.     " Contenido de texto para archivo adjunto de correo
        DATA: l_con(50) TYPE c.        " Contenido del campo en formato de caracteres

        * Columnas para tabular
        LOOP AT i_mara ASSIGNING <lfs_table>.
            DO.
                ASSIGN COMPONENT sy-index OF STRUCTURE <lfs_table>
                TO <lfs_con>.
                IF sy-subrc NE 0.
                    CONCATENATE c_cr l_text INTO l_text.
                    APPEND l_text TO i_attach.
                    EXIT.
                ELSE.
                    CLEAR: l_con.
                    MOVE <lfs_con> TO l_con.
                    CONDENSE l_con.
                    IF sy-index = 1.
                        CLEAR: l_text.
                        MOVE l_con TO l_text.
                    ELSE.
                        CONCATENATE l_text l_con INTO l_text
                        SEPARATED BY ','.    "Para archivo separado por comas
                    ENDIF.
                ENDIF.
            ENDDO.
        ENDLOOP.

        * Preparando cuerpo del correo
        MOVE 'Detalles del material adjunto' TO l_text.
        APPEND l_text TO i_content.

        * Creando documento
        l_document = cl_document_bcs=>create_document(
        i_type  = 'RAW'
        i_text  = i_content[]
        i_subject = 'Detalles del material' ).

        DESCRIBE TABLE i_mara LINES l_lines.
        * Tamaño a multiplicar por 2 para sistemas habilitados para UNICODE
        
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?