¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como alterar a extensão de um arquivo anexado no CL_BCS para enviar e-mails

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

Estou usando a classe CL_BCS para enviar e-mails. Tenho um arquivo de texto delimitado por vírgulas e preciso enviá-lo como anexo de e-mail. Está tudo certo, mas a extensão do arquivo anexo está sendo exibida como .TXT em vez de .CSV.

Como posso corrigir isso?


            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[].

No e-mail, o anexo está sendo exibido como Y_GEMR_REPORT.CSV.TXT

Alguma informação?

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

4 Respuestas

0
Cargando...

Alguma informação?

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

Mike, obrigado pela sua resposta.

Tentei usar i_attachment_type com os valores CSV XLS WIN, mas depois de usá-los, o conteúdo dos meus anexos aparece em uma única linha em uma coluna. Não se ajusta corretamente em diferentes colunas.

Mas se eu usar RAW nos anexos, os dados são colocados corretamente em colunas ao abri-los no Excel. A única coisa que o usuário precisa fazer é salvar o anexo do e-mail, renomeá-lo como .CSV, então está tudo bem.

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

Não estou usando o tipo 'RAW', mas sempre estou utilizando o tipo de extensão real para os documentos que estou enviando desta forma:

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 =

e lv_type é determinado da seguinte forma:

lv_type = lw_file_access_info-file_name+lv_length(3).

e para create_document eu faço o seguinte:

  • Criar documento.

document = cl_document_bcs->create_document(

i_type = 'RAW'

i_text = it_text

  • i_length = l_strlen

Editado por: Micky Oestreich em 24 de abril de 2008 às 19:51.

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

Olá a todos,

Verifique o código abaixo



        FIELD-SYMBOLS: <lfs_table>,    " Estrutura da tabela interna
        <lfs_con>.      " Conteúdo do campo
        DATA: l_text TYPE char1024.     " Conteúdo de texto para arquivo anexado de email
        DATA: l_con(50) TYPE c.        " Conteúdo do campo em formato de caracteres

        * Colunas 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 arquivo separado por vírgulas
                    ENDIF.
                ENDIF.
            ENDDO.
        ENDLOOP.

        * Preparando o corpo do email
        MOVE 'Detalhes do material anexado' TO l_text.
        APPEND l_text TO i_content.

        * Criando documento
        l_document = cl_document_bcs=>create_document(
        i_type  = 'RAW'
        i_text  = i_content[]
        i_subject = 'Detalhes do material' ).

        DESCRIBE TABLE i_mara LINES l_lines.
        * Tamanho a ser multiplicado 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?