¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Guía para crear rutinas ABAP en BW: almacenamiento en tabla interna, exportación a Excel y envío por correo electrónico

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

Tengo que escribir algunas rutinas ABAP en BW.

A continuación se presenta el escenario:

Leyendo registros del paquete de solicitud, almacenándolos en alguna tabla interna, y luego llamando a alguna FM para almacenar en una hoja de Excel, y luego enviando esa hoja de Excel por correo externo.

¿Cuáles son los módulos de función para guardar la salida en formato Excel y enviar el archivo por correo electrónico?

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

3 Respuestas

0
Cargando...

Eso parece un poco familiar.

Saludos,

Rich Heilman

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

Puedes usar SO_DOCUMENT_SEND_API1 para enviar adjuntos de Excel.

Aquí tienes un código de ejemplo para enviar un archivo de Excel como adjunto.

report ZMAILTEST.

parameters: p_email type somlreci1-receiver

default 'you@yourcompany.com'.

data: begin of it001 occurs 0,

bukrs type t001-bukrs,

butxt type t001-butxt,

end of it001.

data: imessage type standard table of solisti1 with header line,

iattach type standard table of solisti1 with header line,

ipacking_list like sopcklsti1 occurs 0 with header line,

ireceivers like somlreci1 occurs 0 with header line,

iattachment like solisti1 occurs 0 with header line.

start-of-selection.

select bukrs butxt into table it001 from t001.

  • Llena la tabla con detalles para ser ingresados en el archivo .xls

perform build_xls_data .

  • Llena el cuerpo del mensaje

clear imessage. refresh imessage.

imessage = 'Por favor, encuentra adjunto el archivo de Excel'.

append imessage.

  • Envía el archivo por correo electrónico como hoja de cálculo .xls

perform send_email_with_xls tables imessage

iattach

using p_email

'Ejemplo de Adjunto de Excel'

'XLS'

'NombreArchivoPrueba'

'Códigos de Compañía'.

form build_xls_data .

constants: con_cret type x value '0D', "OK para no Unicode

con_tab type x value '09'. "OK para no Unicode

concatenate 'BUKRS' 'BUTXT'

into iattach separated by con_tab.

concatenate con_cret iattach into iattach.

loop at it001.

concatenate it001-bukrs it001-butxt

into iattach separated by con_tab.

concatenate con_cret iattach into iattach.

append iattach.

endloop.

endform.

form send_email_with_xls tables pit_message

pit_attach

using p_email

p_mtitle

p_format

p_filename

p_attdescription.

data: xdocdata like sodocchgi1,

xcnt type i.

xdocdata-doc_size = 1.

xdocdata-obj_langu = sy-langu.

xdocdata-obj_name = 'SAPRPT'.

xdocdata-obj_descr = p_mtitle .

clear xdocdata.

read table iattach index xcnt.

xdocdata-doc_size =

( xcnt - 1 ) * 255 + strlen( iattach ).

xdocdata-obj_langu = sy-langu.

xdocdata-obj_name = 'SAPRPT'.

xdocdata-obj_descr = p_mtitle.

clear iattachment. refresh iattachment.

iattachment[] = pit_attach[].

clear ipacking_list. refresh ipacking_list.

ipacking_list-transf_bin = space.

ipacking_list-head_start = 1.

ipacking_list-head_num = 0.

ipacking_list-body_start = 1.

describe table imessage lines ipacking_list-body_num.

ipacking_list-doc_type = 'RAW'.

append ipacking_list.

ipacking_list-transf_bin = 'X'.

ipacking_list-head_start = 1.

ipacking_list-head_num = 1.

ipacking_list-body_start = 1.

describe table iattachment lines ipacking_list-body_num.

ipacking_list-doc_type = p_format.

ipacking_list-obj_descr = p_attdescription.

ipacking_list-obj_name = p_filename.

ipacking_list-doc_size = ipacking_list-body_num * 255.

append ipacking_list.

clear ireceivers. refresh ireceivers.

ireceivers-receiver = p_email.

ireceivers-rec_type = 'U'.

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?