#1
|
|||
|
|||
Urgente adjuntas 3 archivos
necesto adjuntar 3 archivos a un mail que se genera automaticamente , el 1 es el pedidoque lo generodesde el spool a pdf y losotrs 2 serìan siempre fijos pero no se como adjuntarlos alguna idea??
|
#2
|
|||
|
|||
Este report adjuntaba 5 archivos
---------------------------------------------------------------------*
*& Report ZPC_PDF *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* * Includes declare data INCLUDE zpc_pdf_top. " Global Data INCLUDE rlb_invoice_data_declare. * INCLUDE ZPC_PDF_O01. " PBO-Modules * INCLUDE ZPC_PDF_I01. " PAI-Modules * INCLUDE ZPC_PDF_F01. " FORM-Routines * Selection screen SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: p_spmon TYPE s710-spmon, p_subje(255). SELECT-OPTIONS: s_smtp FOR adr6-smtp_addr, s_file FOR filetext-filename. SELECTION-SCREEN END OF BLOCK b1. * Include de funciones INCLUDE zpc_pdf_forms. * Mail program START-OF-SELECTION. PERFORM param. * Form name lf_formname = 'ZPRUEBA_PDF'. PERFORM set_print_data_to_read USING lf_formname CHANGING ls_print_data_to_read cf_retcode. PERFORM module_name. PERFORM convert_otf. PERFORM line_change. PERFORM config_mail. * Enviar mail PERFORM enviar_email TABLES pdf_tab_aux " <-- Tabla con el pdf de 255 de anchura ltb_body " <-- Texto del cuerpo del correo ltb_recipients " <-- Receptores del correo USING lw_subject " <-- Titulo del correo lw_filename. " <-- Nombre del adjunto END-OF-SELECTION. *&---------------------------------------------------------------------* *& Include ZPC_PDF_FORMS *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form set_print_data_to_read *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_LF_FORMNAME text * <--P_LS_PRINT_DATA_TO_READ text * <--P_RETCODE text *----------------------------------------------------------------------* FORM set_print_data_to_read USING if_formname LIKE tnapr-sform CHANGING cs_print_data_to_read TYPE lbbil_print_data_to_read cf_retcode. FIELD-SYMBOLS: <fs_print_data_to_read> TYPE xfeld. DATA: lt_fieldlist TYPE tsffields. * Datos requeridos para la impresión de los Smart-Forms. DO. ASSIGN COMPONENT sy-index OF STRUCTURE cs_print_data_to_read TO <fs_print_data_to_read>. IF sy-subrc <> 0. EXIT. ENDIF. <fs_print_data_to_read> = 'X'. ENDDO. CALL FUNCTION 'SSF_FIELD_LIST' EXPORTING formname = if_formname * VARIANT = ' ' IMPORTING fieldlist = lt_fieldlist EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. ENDFORM. " set_print_data_to_read *&--------------------------------------------------------------------* *& Form ENVIAR_EMAIL *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM enviar_email TABLES ptb_pdf255 STRUCTURE solisti1 ptb_body STRUCTURE solisti1 ptb_recipients STRUCTURE somlreci1 USING pw_subject TYPE so_obj_des pw_filename TYPE char100. * Data declaration * Variables y tablas internas DATA: BEGIN OF ltb_objbin OCCURS 0. INCLUDE STRUCTURE solisti1. DATA: END OF ltb_objbin. DATA: start TYPE i, end TYPE i. DATA: lwa_doc_chng LIKE sodocchgi1, lw_tab_lines LIKE sy-tabix, ltb_objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE, ltb_objheader LIKE solisti1 OCCURS 0 WITH HEADER LINE. * Main processing section CLEAR: ltb_objbin, ltb_objtxt, ltb_objpack, lwa_doc_chng. REFRESH: ltb_objbin, ltb_objtxt, ltb_objpack. * Control Data lwa_doc_chng-obj_name = 'URGENT'. lwa_doc_chng-sensitivty = 'P'. lwa_doc_chng-no_change = 'X'. lwa_doc_chng-priority = '1'. lwa_doc_chng-obj_prio = '1'. lwa_doc_chng-obj_langu = sy-langu. * Email Subject lwa_doc_chng-obj_descr = pw_subject. * Attachment * Move the binary attachment to other internal table. ltb_objbin[] = ptb_pdf255[]. APPEND ltb_objbin. ltb_objpack-transf_bin = 'X'. * Inicially 1 for attachments ltb_objpack-head_num = 1. ltb_objpack-body_start = 1. * Get the number of lines in the Attachment (PDF FILE) DESCRIBE TABLE ltb_objbin LINES lw_tab_lines. ltb_objpack-body_num = lw_tab_lines. ltb_objpack-doc_type = 'PDF'. ltb_objpack-obj_descr = pw_filename. ltb_objpack-obj_name = pw_filename. ltb_objpack-doc_size = lw_tab_lines * 255. APPEND ltb_objpack. LOOP AT s_file. ltb_objpack-body_start = ltb_objpack-body_start + ltb_objpack-body_num. l_file = s_file-low. fdpos = STRLEN( l_file ) - 3. PERFORM read_from_frontend TABLES ltb_objbin_aux CHANGING l_file ltb_objpack-doc_size ltb_objpack-body_num. LOOP AT ltb_objbin_aux. MOVE ltb_objbin_aux TO ltb_objbin. APPEND ltb_objbin. ENDLOOP. pw_filename = l_file+3(fdpos). ADD 1 TO ltb_objpack-head_start. ltb_objpack-transf_bin = 'X'. ltb_objpack-doc_type = 'RAW'. ltb_objpack-obj_descr = pw_filename. ltb_objpack-obj_name = pw_filename. APPEND ltb_objpack. ENDLOOP. * Call the function to send the PDF file by email CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = lwa_doc_chng put_in_outbox = 'X' * COMMIT_WORK = ' ' * IMPORTING * SENT_TO_ALL = * NEW_OBJECT_ID = TABLES packing_list = ltb_objpack contents_bin = ltb_objbin contents_txt = ltb_objtxt * CONTENTS_HEX = * OBJECT_PARA = * OBJECT_PARB = receivers = ptb_recipients 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. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. COMMIT WORK. * Instructs mail send program for SAPCONNECT to send email(rsconn01) PERFORM initiate_mail_execute_program. ENDIF. ENDFORM. "enviar_email *&---------------------------------------------------------------------* *& Form Line_change *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM line_change. * Cambio de tamaño CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE' EXPORTING transfer_bin = 'X' TABLES content_in = pdf_tab content_out = pdf_tab_aux. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " Line_change *&---------------------------------------------------------------------* *& Form param *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM param. ls_composer_param-tddest = 'LOCL'. "Dispositivo de salida ls_composer_param-tdnewid = 'X'. ls_composer_param-tdimmed = 'X'. "Salida inmediata ls_composer_param-tddelete = ' '. "Borrar tras salida orden spool ls_control_param-getotf = 'X'. ls_control_param-no_dialog = 'X'. ls_control_param-preview = 'X'. ENDFORM. " param *&---------------------------------------------------------------------* *& Form module_name *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM module_name. * Llamada al modulo de funciones que ejecuta el smart-forms. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = lf_formname IMPORTING fm_name = lf_fm_name. CALL FUNCTION lf_fm_name EXPORTING archive_index = toa_dara archive_parameters = arc_params control_parameters = ls_control_param mail_recipient = ls_recipient mail_sender = ls_sender output_options = ls_composer_param user_settings = space is_nast = nast is_repeat = repeat spmon = p_spmon IMPORTING job_output_info = tab_otf_data EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4. * Appending the otf data into the final table tab_otf_final[] = tab_otf_data-otfdata[]. ENDFORM. " module_name *&---------------------------------------------------------------------* *& Form convert_otf *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM convert_otf. * Converting OTF data into pdf data CALL FUNCTION 'CONVERT_OTF' EXPORTING format = 'PDF' max_linewidth = 132 * ARCHIVE_INDEX = ' ' * COPYNUMBER = 0 * ASCII_BIDI_VIS2LOG = ' ' * PDF_DELETE_OTFTAB = ' ' IMPORTING bin_filesize = bin_filesize * BIN_FILE = TABLES otf = tab_otf_final lines = pdf_tab EXCEPTIONS err_max_linewidth = 1 err_format = 2 err_conv_not_possible = 3 err_bad_otf = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " convert_otf *&---------------------------------------------------------------------* *& Form Config_mail *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM config_mail. * Envío por mail lw_subject = p_subje. "<-- Subject del correo lwa_body-line = ''. APPEND lwa_body TO ltb_body. *lw_filename = 'Cert.Lilly'. "<-- Nombre del archivo adjunto * Recipients LOOP AT s_smtp. lwa_recipients-rec_type = 'U'. "<-- Correo al exterior lwa_recipients-express = 'X'. lwa_recipients-receiver = s_smtp-low. "<-- Destinatario lwa_recipients-copy = ''. APPEND lwa_recipients TO ltb_recipients. ENDLOOP. ENDFORM. " Config_mail *&---------------------------------------------------------------------* *& Form read_from_frontend *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM read_from_frontend TABLES it_bin STRUCTURE ltb_objbin_aux CHANGING fichero TYPE string size TYPE so_doc_siz line TYPE so_bd_num. CLEAR: line, size. CALL METHOD cl_gui_frontend_services=>gui_upload EXPORTING filename = fichero filetype = 'ASC' has_field_separator = 'X' * header_length = 0 * read_by_line = 'X' dat_mode = 'X' * codepage = space * ignore_cerr = abap_true * replacement = '#' * virus_scan_profile = * IMPORTING * filelength = * header = CHANGING data_tab = it_bin[] EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 not_supported_by_gui = 17 error_no_gui = 18 OTHERS = 19. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. line = sy-tabix. size = line * 255. * APPEND it_bin. * * DELETE it_bin WHERE matnr EQ 0. ENDIF. ENDFORM. " read_from_frontend *&---------------------------------------------------------------------* *& Form initiate_mail_execute_program *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM initiate_mail_execute_program. WAIT UP TO 2 SECONDS. SUBMIT rsconn01 WITH mode = 'INT' WITH output = 'X' AND RETURN. ENDFORM. " initiate_mail_execute_program *&---------------------------------------------------------------------* *& Include ZPC_PDF_TOP Report ZPC_PDF *& *&---------------------------------------------------------------------* REPORT zpc_pdf. TABLES: adr6, filetext. TYPE-POOLS: meein. DATA: ls_print_data_to_read TYPE lbbil_print_data_to_read, lf_fm_name TYPE rs38l_fnam, ls_control_param TYPE ssfctrlop, ls_composer_param TYPE ssfcompop, ls_recipient TYPE swotobjid, ls_sender TYPE swotobjid, lf_formname TYPE tdsfname, ls_addr_key LIKE addr_key. DATA: l_doc TYPE meein_purchase_doc_print, l_druvo LIKE t166k-druvo, l_from_memory. DATA: file_size TYPE i, bin_filesize TYPE i, tab_otf_data TYPE ssfcrescl, pdf_tab LIKE tline OCCURS 0 WITH HEADER LINE, tab_otf_final TYPE itcoo OCCURS 0 WITH HEADER LINE. DATA: cf_retcode LIKE sy-subrc, tabla_out TYPE ssfcrescl, pdf_tab_aux TYPE so_text255 OCCURS 0, size TYPE i. DATA: lw_subject TYPE so_obj_des, lwa_body TYPE solisti1, ltb_body TYPE TABLE OF solisti1, lw_filename TYPE char100, ltb_recipients TYPE TABLE OF somlreci1, lwa_recipients TYPE somlreci1. * Variables DATA: gt_file TYPE filetable, l_filename TYPE string, gt_subrc TYPE sy-subrc, user_act TYPE i. DATA: ltb_objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE, l_file TYPE string, fdpos TYPE syfdpos. DATA: BEGIN OF ltb_objbin_aux OCCURS 0, matnr TYPE mara-matnr, ersda TYPE mara-ersda, ernam TYPE mara-ernam, laeda TYPE mara-laeda, aenam TYPE mara-aenam, vpsta TYPE mara-vpsta, pstat TYPE mara-pstat, END OF l |
#3
|
|||
|
|||
gracias
muchas gracias lo voy a probar
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|