#1
|
|||
|
|||
crear documento en pdf y enviarlas por correo
Hola ,
Se crearon unas constancias personalizadas y se requiere enviarlas por correo a cada proveedor . Estas constancias ya se crean pero al pasarla al formato pdf me crea un solo archivo en el directorio con todos los documentos. Lo que se quiere es que cuando se ejecute el programa se genere un pdf por proveedor y enviarselo de manera individual. Ejemplo: proovedor1.pdf enviarlo al correo de proveedor1 @..., proovedor2.pdf enviarlo al correo de proveedor21 @..., cualquier idea seria de gran utilidad gracias |
#2
|
||||
|
||||
para minerva0112
hola minerva0112 te mando un ejemplo para enviar por mail recuperando el numero de spool ,
TYPES: begin of ty_adr6, mail type adr6-smtp_addr, end of ty_adr6. DATA: t_adr6 type standard table of ty_adr6, wa_adr6 type ty_adr6. DATA: e_datos_doc LIKE sodocchgi1. DATA: i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE, i_destinatario LIKE somlreci1 OCCURS 0 WITH HEADER LINE, i_cont_bin LIKE solisti1 OCCURS 0 WITH HEADER LINE, i_texto LIKE solisti1 OCCURS 0 WITH HEADER LINE, i_anexo LIKE solisti1 OCCURS 0 WITH HEADER LINE. *----------------------------------------------------------------------* * *----------------------------------------------------------------------* DATA: v_lineas LIKE sy-tabix, v_lineas_tot LIKE sy-tabix, v_len LIKE sy-index, v_long LIKE sy-index, v_queda LIKE sy-index, v_offset LIKE sy-index, v_indice LIKE sy-index, wa_descr(70) TYPE c, wa_nombre_archivo(50). DATA: i_tline TYPE TABLE OF tline WITH HEADER LINE, i_bin LIKE solisti1 OCCURS 0 WITH HEADER LINE, i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE, i_doctab TYPE docs OCCURS 0 WITH HEADER LINE. DATA: wa_return TYPE ssfcrescl, wa_buffer TYPE string, " to convert from 132 to 255 v_len_in TYPE sood-objlen, wa_adrnr TYPE lfa1-adrnr, wa_objhead TYPE solisti1 OCCURS 0. DATA: wa_contrl TYPE ssfctrlop, wa_output TYPE ssfcompop. CONSTANTS: c_255(3) TYPE c VALUE '255', c_134(3) TYPE c VALUE '134'. DATA: l_str(134) TYPE c, v1(3) TYPE c, v2(3) TYPE c, v3(3) TYPE c. refresh: i_otf, i_doctab, i_tline, i_bin, wa_objhead, t_adr6. clear: e_datos_doc, wa_return, wa_nombre_archivo, wa_adr6. CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF' EXPORTING SRC_SPOOLID = '6498' TABLES PDF = i_tline EXCEPTIONS ERR_NO_OTF_SPOOLJOB = 1 ERR_NO_SPOOLJOB = 2 ERR_NO_PERMISSION = 3 ERR_CONV_NOT_POSSIBLE = 4 ERR_BAD_DSTDEVICE = 5 USER_CANCELLED = 6 ERR_SPOOLERROR = 7 ERR_TEMSEERROR = 8 ERR_BTCJOB_OPEN_FAILED = 9 ERR_BTCJOB_SUBMIT_FAILED = 10 ERR_BTCJOB_CLOSE_FAILED = 11 OTHERS = 12. LOOP AT i_tline. CLEAR l_str. l_str+0(2) = i_tline-tdformat. l_str+2(132) = i_tline-tdline. v2 = v1 + c_134. IF v2 LE c_255. i_bin-line+v1(c_134) = l_str. v1 = v2. ELSE. v3 = v2 - c_255. v2 = c_255 - v1. CONDENSE v2 NO-GAPS. if v2 ne '0'. i_bin-line+v1(v2) = l_str+0(v2). ENDIF. APPEND i_bin. CLEAR i_bin. v1 = v3. v3 = c_134 - v1. IF NOT v1 IS INITIAL. i_bin-line+0(v1) = l_str+v3(v1). ENDIF. ENDIF. ENDLOOP. APPEND i_bin. CLEAR i_bin. * mail customer * if p_mail1 = 'X'. * SELECT SINGLE adrnr INTO wa_adrnr * FROM kna1 * WHERE kunnr = wa_customer-kunnr. * * IF sy-subrc = '0'. * SELECT smtp_addr INTO table t_adr6 * FROM adr6 * WHERE addrnumber = wa_adrnr. * ENDIF. * endif. * * if p_mail2 = 'X'. * move: p_direc to wa_adr6-mail. * append wa_adr6 to t_adr6. * endif. * Attachment REFRESH: i_destinatario, i_texto, i_cont_bin, i_objpack. CLEAR wa_objhead. i_cont_bin[] = i_bin[]. ******************************** . i_texto-line = text-m02. APPEND i_texto. ******************************** DESCRIBE TABLE i_texto LINES v_lineas_tot. READ TABLE i_texto INDEX v_lineas_tot. e_datos_doc-obj_name = 'smartform'. e_datos_doc-expiry_dat = sy-datum + 10. e_datos_doc-obj_descr = text-m01. e_datos_doc-sensitivty = 'F'. e_datos_doc-doc_size = v_lineas_tot * 255. * Main Text CLEAR i_objpack-transf_bin. i_objpack-head_start = 1. i_objpack-head_num = 0. i_objpack-body_start = 1. i_objpack-body_num = v_lineas_tot. i_objpack-doc_type = 'RAW'. APPEND i_objpack. move:text-t10 to wa_nombre_archivo. * Attachment (pdf-Attachment) i_objpack-transf_bin = 'X'. i_objpack-head_start = 1. i_objpack-head_num = 0. i_objpack-body_start = 1. DESCRIBE TABLE i_cont_bin LINES v_lineas. READ TABLE i_cont_bin INDEX v_lineas. i_objpack-doc_size = v_lineas * 255 . i_objpack-body_num = v_lineas. i_objpack-doc_type = 'PDF'. i_objpack-obj_name = 'smart'. i_objpack-obj_descr = wa_nombre_archivo. APPEND i_objpack. REFRESH i_destinatario. CLEAR i_destinatario. * loop at t_adr6 into wa_adr6. * i_destinatario-receiver = wa_adr6-mail. * i_destinatario-rec_type = 'U'. * APPEND i_destinatario. * endloop. i_destinatario-receiver = 'correo del proveedor' i_destinatario-rec_type = 'U'. APPEND i_destinatario. * sen mail CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = e_datos_doc put_in_outbox = 'X' * COMMIT_WORK = 'X' TABLES packing_list = i_objpack object_header = wa_objhead contents_bin = i_cont_bin contents_txt = i_texto receivers = i_destinatario EXCEPTIONS too_many_receivers = 1 document_not_sent = 2 operation_no_authorization = 4 OTHERS = 99. IF sy-subrc = 0. * con esto lo envia COMMIT WORK. WAIT UP TO 10 SECONDS. SUBMIT rsconn01 AND RETURN. COMMIT WORK. ENDIF. |
#3
|
|||
|
|||
gracias todo perfecto
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|