#1
|
|||
|
|||
Send Email problem
hola chicos. estoy enviando un correo con un archivo adjunto en pdf. el correo llega pero vacio.. ayuda tengo varioss dias haciendo esto y nada. el que envia el correo es un z, con la funcion SO_DOCUMENT_SEND_API1
|
#2
|
|||
|
|||
Pega el código aca para revisarlo.
Como estas llenando la tabla parámetro contents_txt? |
#3
|
|||
|
|||
FORM f_send_mail.
" Local data DATA: ld_sender_address LIKE soextreci1-receiver. " Mail data DATA: ld_sender_address_type LIKE soextreci1-adr_typ. " Mail data DATA: ld_sent_to_all LIKE sonv-flag. " Mail data DATA: ld_lname TYPE string. DATA: ld_index TYPE string. DATA: ld_cont TYPE I. " WA's DATA: ls_doc_data LIKE sodocchgi1. " Mail Data DATA: ls_packing_list TYPE sopcklsti1. " Mail Data DATA: ls_receivers TYPE somlreci1. " Mail Data " IT'S DATA: lt_packing_list TYPE TABLE OF sopcklsti1. " Mail Data DATA: lt_contents_bin TYPE TABLE OF solisti1. " Mail Data DATA: lt_contents_txt TYPE TABLE OF solisti1. " Mail Data DATA: lt_contents_hex TYPE TABLE OF solisti1. " Mail Data DATA: lt_receivers TYPE TABLE OF somlreci1. " Mail Data " FS's FIELD-SYMBOLS: <lfs_line> TYPE solisti1. " Mail Data FIELD-SYMBOLS: <lfs_packing_list> TYPE sopcklsti1. " Mail Data FIELD-SYMBOLS: <lfs_receivers> TYPE somlreci1. " Mail Data FIELD-SYMBOLS: <lfs_report> LIKE LINE OF gt_report. " Contenido del mensaje LT_CONTENTS_TXT DO. " Se debe crear una constante por cada linea. " El nombre debe comenzar por lo indicado en GC_BEG_LINE_NAME y seguidamente un número consecutivo MOVE sy-index TO ld_index. CONDENSE ld_index. CONCATENATE gc_beg_line_name ld_index INTO ld_lname. ASSIGN (ld_lname) TO <lfs_line>. IF <lfs_line> IS ASSIGNED. APPEND <lfs_line> TO lt_contents_txt. UNASSIGN <lfs_line>. ELSE. EXIT. ENDIF. ENDDO. " Document data - Common part MOVE sy-langu TO ls_doc_data-obj_langu. MOVE 'SAPRPT' TO ls_doc_data-obj_name. MOVE gc_mail_title TO ls_doc_data-obj_descr. MOVE 'F' TO ls_doc_data-sensitivty. " Describe the message body MOVE space TO ls_packing_list-transf_bin. MOVE 1 TO ls_packing_list-head_start. MOVE 0 TO ls_packing_list-head_num. MOVE 1 TO ls_packing_list-body_start. MOVE 'RAW' TO ls_packing_list-doc_type. DESCRIBE TABLE lt_contents_txt LINES ls_packing_list-body_num. APPEND ls_packing_list TO lt_packing_list. " Attachment notif MOVE 'X' TO ls_packing_list-transf_bin. MOVE 1 TO ls_packing_list-head_start. MOVE 0 TO ls_packing_list-head_num. MOVE 1 TO ls_packing_list-body_start. MOVE 'PDF' TO ls_packing_list-doc_type. CONCATENATE gc_fileprefix sy-datum INTO ls_packing_list-obj_name. APPEND ls_packing_list TO lt_packing_list. " Send to - Common part MOVE 'U' TO ls_receivers-rec_type. MOVE 'INT' TO ls_receivers-com_type. MOVE 'X' TO ls_receivers-notif_del. MOVE 'X' TO ls_receivers-notif_ndel. APPEND ls_receivers TO lt_receivers. " Loop employees LOOP AT gt_report ASSIGNING <lfs_report>. " Document data - Employee specific part MOVE <lfs_report>-file_size TO ls_doc_data-doc_size. " Attachment notif READ TABLE lt_packing_list ASSIGNING <lfs_packing_list> INDEX 2. DESCRIBE TABLE lt_contents_bin LINES <lfs_packing_list>-body_num. " Pay receipt MOVE <lfs_report>-file_size TO <lfs_packing_list>-doc_size. * MOVE <lfs_report>-pay_receipt TO lt_contents_bin. " Send TO - Mail READ TABLE lt_receivers ASSIGNING <lfs_receivers> INDEX 1. * MOVE <lfs_report>-email TO <lfs_receivers>-receiver. MOVE 'cesarcaes01@gmail.com' TO <lfs_receivers>-receiver. "convert 132 to 255 CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE' EXPORTING line_width_src = 132 line_width_dst = 255 TABLES CONTENT_IN = <lfs_report>-pay_receipt CONTENT_OUT = lt_contents_bin EXCEPTIONS err_line_width_src_too_long = 1 err_line_width_dst_too_long = 2 err_conv_failed = 3 OTHERS = 4. CALL FUNCTION 'SO_DOCUMENT_SEND_API1' EXPORTING DOCUMENT_DATA = ls_doc_data * PUT_IN_OUTBOX = PUT_IN_OUTBOX * SENDER_ADDRESS = SPACE * SENDER_ADDRESS_TYPE = SPACE COMMIT_WORK = 'X' IMPORTING SENT_TO_ALL = ld_sent_to_all TABLES PACKING_LIST = lt_packing_list CONTENTS_BIN = lt_contents_bin CONTENTS_TXT = lt_contents_txt RECEIVERS = lt_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 NE 0. MESSAGE 'Error al enviar mail' TYPE 'W'. else. MESSAGE 'Mensaje enviado' TYPE 'W'. ENDIF. ENDLOOP. ENDFORM. |
#4
|
|||
|
|||
donde gt_report-pay_receipt es una variable de tipo tline de 132. por eso hago la conversion de 132 a 255. pero no me llega el pdf..
|
#5
|
|||
|
|||
Estafador SAP Waldo Alejandro Rivera Toscano
Quiero hacer de su conocimiento que Waldo Alejandro Rivera Toscano, ofrece servicio de servidores en renta los cuales despues de 4 semana desactiva y se da por perdido en su correo:sapidesmexico@gmail.com, de la misma forma ofrece material SAP en diferentes modulos los cuales son falsos.
|
#6
|
|||
|
|||
Ayuda por favor...
|
#7
|
|||
|
|||
Me puedes explicar esta parte?
Como alimentas el texto? Quien es GC_BEG_LINE_NAME? Te has asegurado por el debugger que la tabla lt_contents_txt se llena correctamente? |
#8
|
|||
|
|||
en esa parte del código estoy llenando el contenido del email, sin tocar el adjunto. es decir el cuerpo del correo. las constantes que se piden crear es un cmentario que le hago al codigo a futuro, para completar los datos de la tabla alv. el correo llega perfecto. solo el adjunto siempre llega con 1k.
GC_BEG_LINE_NAME la estoy usando como formato para definir el nombre de las constantes a futuro. y si se recorre con exito la txt. |
#9
|
|||
|
|||
El problema creo que esta en el lt_contents_bin, parámetro en el que paso el pdf al al función que envía el correo, lo extraño es que pruebo en esa parte del código con la función DOWNLOAD, y si me descarga el recibo de pago perfecto. pero la función SO_DOCUMENT_SEND_API1 no se lleva el pdf.
|
#10
|
|||
|
|||
Ok, disculpa de verdad habia entendido mal el problema, no se porque entendí que era el texto lo que te fallaba y no el adjunto.
Bueno, no soy experto, estoy tratando de ver diferencias con un codigo que yo ya he usado y se que ha funcionado bien, de las pocas diferencias que vi prueba a ver con esto: Tu tienes unas líneas con este código: Comentalas, y agrega este código luego de tu llamada a la función SX_TABLE_LINE_WIDTH_CHANGE: Esperemos que ese sea el problema. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|