#1
|
|||
|
|||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|