MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
 
 
Herramientas Buscar en Tema Desplegado
Prev Mensaje Previo   Próximo Mensaje Próx
  #1  
Viejo 03/08/10, 12:17:38
poketina poketina is offline
Senior Member
 
Fecha de Ingreso: jul 2006
Mensajes: 105
Problema al adjuntar pdf a mail..

Hola !!! Tengo un problemita con el envío de mails...
El usuario quiere que cada vez que se grabe un pedido de compras (ME21N y ME22N) se envíe un mail a una persona con el pedido en formato PDF.
He metido una función en una exit que a su vez llama a un report. Este report lo que hace es, en fondo, crearme la orden de spool y -se supone- pasarlo a PDF y después adjuntarlo al mail para enviarlo posteriormente.
El mail se envía correctamente con el PDF adjunto pero al abrirlo con Acrobat me da un mensaje de "Se ha producido un error de dibujo", le doy a aceptar, se ve el pedido pero si muevo el scroll pierdo el pedido.. Pasa lo mismo incluso aunque lo baje al pc...
Adjunto mi código por si a alguien se le ocurre qué puede ser..
Gracias de antemano !!!

FORM enviar_mail .


DATA: t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE.

PERFORM impresora.

CLEAR: it_receivers, it_object_content, doc_chng, objpack, objhead, objbin, objtxt.
REFRESH: it_receivers, it_object_content, objpack, objhead, objbin, objtxt.

* Obtener adjunto
PERFORM adjunto.

* Informar destinatario del mail
PERFORM obtener_destinatario.

* Informar cuerpo del mail
PERFORM montar_html USING p_lifnr
p_ebeln
p_cod.

doc_chng-obj_name = 'Envio Pedido N'.
doc_chng-obj_descr = 'Envío pedido D'.
DESCRIBE TABLE objtxt LINES tab_lines.

doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
dir_mail_emisor = sy-uname.
objhead = 'Envío mail'.
APPEND objhead.

CLEAR doc_chng.

doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
doc_chng-obj_langu = sy-langu.
doc_chng-obj_name = 'Envio Pedido N'.
doc_chng-obj_descr = 'Envío pedido D'.
doc_chng-sensitivty = 'F'.

CLEAR objbin.
REFRESH objbin.
objbin[] = it_mess_att[].
DESCRIBE TABLE objbin LINES tab_lines.

* Carga del registro que configura el mail
PERFORM cargar_registro.

DESCRIBE TABLE objbin LINES tab_lines.
objpack-transf_bin = 'X'.
objpack-body_num = tab_lines.
objpack-doc_type = 'PDF'.
objpack-doc_size = pbyte.
MOVE objhead TO objpack-obj_descr.
MOVE objhead TO objpack-obj_name.
objpack-doc_size = tab_lines * 255.
APPEND objpack.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
TABLES
packing_list = objpack
object_header = objhead
contents_bin = objbin
contents_txt = objtxt
receivers = it_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
IF sy-subrc = 0.
COMMIT WORK.
ENDIF.

ENDFORM. " ENVIAR_MAIL

*&---------------------------------------------------------------------*
*& Form IMPRESORA
*&---------------------------------------------------------------------*
FORM impresora .

CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
authority = space
copies = '1'
cover_page = space
data_set = space
department = space
destination = 'LOCL'
expiration = '1'
immediately = space
* in_archive_parameters = space
* in_parameters = space
layout = space
mode = space
new_list_id = 'X'
no_dialog = 'X'
user = sy-uname
IMPORTING
out_parameters = mstr_print_parms
valid = mc_valid
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
OTHERS = 4.
IF mstr_print_parms-pdest = space.
mstr_print_parms-pdest = 'LOCL'.
ENDIF.
mstr_print_parms-linsz = 180.
mstr_print_parms-paart = 'X_65_180'.

ENDFORM. " IMPRESORA

*&---------------------------------------------------------------------*
*& Form ADJUNTO
*&---------------------------------------------------------------------*
* Obtener PDF y adjuntar
*----------------------------------------------------------------------*
FORM adjunto .

DATA: v_len LIKE sy-index,
v_long LIKE sy-index,
v_queda LIKE sy-index,
v_offset LIKE sy-index.

SELECT * FROM nast WHERE kappl = 'EF'
AND kschl = 'NEU'
AND objky = p_ebeln.
ENDSELECT.
IF sy-subrc = 0.
* Se buscan las órdenes spool correspondientes a los nº de documento
* que vamos a tratar, y se actualizan en las tablas de tratamiento, para
* luego generar los ficheros PDF
PERFORM buscar_spool USING p_ebeln.
** Se genera un fichero PDF por cada uno de los documentos a tratar
* PERFORM imprimir_pdf USING p_ebeln.
IF sy-subrc = 0.
CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gv_spool
IMPORTING
pdf_bytecount = pbyte
TABLES
pdf = it_pdf_output.

LOOP AT it_pdf_output.
TRANSLATE it_pdf_output USING ' ~'.
CONCATENATE v_buffer it_pdf_output INTO v_buffer.
ENDLOOP.
TRANSLATE v_buffer USING '~ '.
DO.
it_mess_att = v_buffer.
APPEND it_mess_att.
SHIFT v_buffer LEFT BY 255 PLACES.
IF v_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDIF.

ENDIF.

ENDFORM. " ADJUNTO

*&---------------------------------------------------------------------*
*& Form CARGAR_REGISTRO
*&---------------------------------------------------------------------*
* Carga del registro que configura el mail
*----------------------------------------------------------------------*
FORM cargar_registro .

CLEAR objpack-transf_bin.
objpack-transf_bin = ''.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'HTM'.
objpack-obj_descr = doc_chng-obj_descr.
APPEND objpack.

objhead = 'Envío mail'.

ENDFORM. " CARGAR_REGISTRO
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:02:18.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web