#1
|
|||
|
|||
Como insertar varios ficheros PDF en un mail
Antes de realizar la función estuve buscando info de como hacer para recoger los archivos anexados en un objeto (archivelink) y enviarlos por correo.
Me encontré con 2 problemas - Obtener los links de los archivos anexados al objeto - Insertar varios documentos en un mismo mail. Copio y pego el codigo de la funcíon : FUNCTION zpinf_get_attach_cesion. *"---------------------------------------------------------------------- *"*"Interfase local *" IMPORTING *" REFERENCE(LS_PSPID) TYPE PS_PSPID *" EXPORTING *" REFERENCE(LS_RETURN) TYPE BAPIRET2 *"---------------------------------------------------------------------- *"---------------------------------------------------------------------- DATA : lwa_zir_er_doc_gos LIKE zir_er_doc_gos, lwa_prps LIKE prps, lwa_proj LIKE proj, ld_nombre TYPE soli, ld_return TYPE bapiret2, ld_document_id TYPE so_entryid, ld_document_data TYPE sofolenti1, ld_sodocchgi1 LIKE sodocchgi1, ld_lineas_txt LIKE sy-index, ld_lineas_pdf LIKE sy-index. DATA : lt_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE, "Header data for document lt_object_content LIKE solisti1 OCCURS 0 WITH HEADER LINE, "Document Content lt_contents_hex LIKE solix OCCURS 0 WITH HEADER LINE, "Table for Binary Content lt_contents_bin LIKE solisti1 OCCURS 0 WITH HEADER LINE, "Table for Binary Content lt_contents_txt LIKE solisti1 OCCURS 0 WITH HEADER LINE, "Table for mail body lt_receivers LIKE somlreci1 OCCURS 5 WITH HEADER LINE, "Receivers lt_packinglist LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE. SELECT SINGLE * INTO lwa_proj FROM proj WHERE pspid = ls_pspid. CHECK sy-subrc = 0. SELECT SINGLE * INTO lwa_zir_er_doc_gos FROM zir_er_doc_gos WHERE pspid = lwa_proj-pspid AND carpeta = 'CES'. CHECK sy-subrc = 0. MOVE lwa_zir_er_doc_gos-attachment TO ld_document_id. *------------------------------------------------------------------------------------------------ *- Lectura del documento *------------------------------------------------------------------------------------------------ CALL FUNCTION 'SO_DOCUMENT_READ_API1' EXPORTING document_id = ld_document_id * FILTER = 'X ' IMPORTING document_data = ld_document_data TABLES object_header = lt_object_header object_content = lt_object_content * OBJECT_PARA = * OBJECT_PARB = * ATTACHMENT_LIST = * RECEIVER_LIST = contents_hex = lt_contents_hex EXCEPTIONS document_id_not_exist = 1 operation_no_authorization = 2 x_error = 3 OTHERS = 4. IF sy-subrc <> 0. MOVE-CORRESPONDING sy TO ls_return. ENDIF. *------------------------------------------------------------------------------------------------ *- Recipientes del correo *------------------------------------------------------------------------------------------------ lt_receivers-receiver = 'javier.fernandezrodriguez.externo@hcenergia.com'. lt_receivers-express = 'X'. lt_receivers-rec_type = 'U'. APPEND lt_receivers. CLEAR lt_receivers. *------------------------------------------------------------------------------------------------ * Objeto con el cuerpo del e-mail. *------------------------------------------------------------------------------------------------ lt_contents_txt = 'Se adjunta fichero de cesion'. APPEND lt_contents_txt. CLEAR lt_contents_txt. DESCRIBE TABLE lt_contents_txt LINES ld_lineas_txt. *------------------------------------------------------------------------------------------------ *- Datos que pueden ser modificados en un objeto. *------------------------------------------------------------------------------------------------ ld_sodocchgi1-obj_name = 'Cesion'. "Nombre del documento, de la carpeta o lista de distribución ld_sodocchgi1-obj_descr = 'Documento de cesión'. "Breve descripción del contenido ld_sodocchgi1-obj_langu = sy-langu. "Idioma en que se ha creado el documento ld_sodocchgi1-obj_sort = ''. "Campo de clasificación ld_sodocchgi1-obj_expdat = ''. "Fecha de caducidad del objeto ld_sodocchgi1-sensitivty = ''. "Objeto: Carácter (privado, funcional, etc.) ld_sodocchgi1-obj_prio = ''. "Prioridad del documento ld_sodocchgi1-no_change = ''. "No es posible modificar este doc. ld_sodocchgi1-doc_size = ld_lineas_txt. *------------------------------------------------------------------------------------------------ *- Pack to main body as RAW *------------------------------------------------------------------------------------------------ lt_packinglist-transf_bin = ''. "Indicador para visual.objeto a transportar de modo binario lt_packinglist-head_start = '1'. "Línea de inicio de cabecera de obj.en paquete transporte lt_packinglist-head_num = '0'. "Ctd.de líneas de cabecera de objeto en paquete lt_packinglist-body_start = '1'. "Línea de inicio de contenido de objeto en paquete lt_packinglist-body_num = ld_lineas_txt. "Cantidad de líneas de contenido de objeto en paquete lt_packinglist-doc_type = 'RAW'. "Sigla p.tipo de documento lt_packinglist-obj_name = 'Cesion'. "Nombre del documento, de la carpeta o lista de distribución lt_packinglist-obj_descr = 'Documento de cesión'. "Breve descripción del contenido lt_packinglist-obj_langu = sy-langu. "Idioma en que se ha creado el documento lt_packinglist-doc_size = ld_lineas_txt * 255. "Tamaño de documento SAPoffice (para API1) lt_packinglist-mess_type = ''. "Clase de mensaje APPEND lt_packinglist. CLEAR lt_packinglist. *------------------------------------------------------------------------------------------------ *- Descripcion de elementos del objeto importados (PDF) *------------------------------------------------------------------------------------------------ DESCRIBE TABLE lt_contents_hex LINES ld_lineas_pdf. lt_packinglist-transf_bin = 'X'. "Indicador para visual.objeto a transportar de modo binario lt_packinglist-head_start = '1'. "Línea de inicio de cabecera de obj.en paquete transporte lt_packinglist-head_num = '1'. "Ctd.de líneas de cabecera de objeto en paquete lt_packinglist-body_start = '1'. "Línea de inicio de contenido de objeto en paquete lt_packinglist-body_num = ld_lineas_pdf. "Cantidad de líneas de contenido de objeto en paquete lt_packinglist-doc_type = 'PDF'. "Sigla p.tipo de documento lt_packinglist-obj_name = 'Cesion'. "Nombre del documento, de la carpeta o lista de distribución lt_packinglist-obj_descr = 'Documento de cesión'. "Breve descripción del contenido lt_packinglist-obj_langu = sy-langu. "Idioma en que se ha creado el documento lt_packinglist-doc_size = ld_lineas_pdf * 255. "Tamaño de documento SAPoffice (para API1) lt_packinglist-mess_type = ''. "Clase de mensaje APPEND lt_packinglist. CLEAR lt_packinglist. *------------------------------------------------------------------------------------------------ *- Envío del correo con el adjunto. *------------------------------------------------------------------------------------------------ * lt_contents_bin[] = lt_contents_hex[]. CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = ld_sodocchgi1 * PUT_IN_OUTBOX = ' ' commit_work = 'X' * IMPORTING * SENT_TO_ALL = * NEW_OBJECT_ID = TABLES packing_list = lt_packinglist object_header = lt_object_header * contents_bin = lt_contents_bin contents_txt = lt_contents_txt contents_hex = lt_contents_hex * OBJECT_PARA = * OBJECT_PARB = 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 <> 0. MOVE-CORRESPONDING sy TO ls_return. ENDIF. ENDFUNCTION. En este caso , el objeto que recibe la funcion es un elemento pep. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|