#1
|
||||
|
||||
Envio por Mail Z, adjuntar.
Hola amigos, tengo un pequeño problema, existe un desarrollo desde el cual se envían las peticiones de oferta de compras por correo outlook, el programa funciona bien, baja la petición y la adjunta al correo y desde outlook se envía. Ahora esta colocando anexos en las peticiones ya sean planos o documentos de word, excel o pdf, esos documentos no se adjuntan en el Z, como podría agregarlos en ese mismo envió, no se mucho de abap pero estoy interesado en aprender, Investigando encontré una tabla que podría contener los anexos SRGBTBREL, les coloco parte del código del programa:
***Para bajar el archivo que se va a adjuntar al PC****************** FORM BAJAR_ARCHIVO. *T *-Busca el nombre del acreedor * SELECT SINGLE * FROM LFA1 WHERE LIFNR EQ REPORT_III-LIFNR. P_FILE = LFA1-NAME1. CONCATENATE SUBDIR '\' P_FILE '.PDF' INTO W_ARCHIVO. CALL FUNCTION 'WS_DOWNLOAD' EXPORTING BIN_FILESIZE = PBYTE FILENAME = W_ARCHIVO FILETYPE = 'BIN' TABLES DATA_TAB = T_PDF EXCEPTIONS INVALID_FILESIZE = 1 INVALID_TABLE_WIDTH = 2 INVALID_TYPE = 3 NO_BATCH = 4 UNKNOWN_ERROR = 5 GUI_REFUSE_FILETRANSFER = 6. IF SY-SUBRC <> 0. MESSAGE ID 'Z1' TYPE 'E' NUMBER '000' WITH TEXT-003. ENDIF. ENDFORM. " BAJAR_ARCHIVO ***Para el Envió del Correo****************** FORM ENVIA-MAIL. INCLUDE OLE2INCL. DATA: APPOUTLOOK TYPE OLE2_OBJECT. DATA: APPOUT2 TYPE OLE2_OBJECT. DATA: APPITEM TYPE OLE2_OBJECT. DATA: NAMESPACE TYPE OLE2_OBJECT. DATA: ATTACHMENTS TYPE OLE2_OBJECT. DATA: FRACE01(66), FRACE02(66), FRACE03(66), FRACE04(66), FRACE05(66). * Crear objeto OLE : outlook.application CREATE OBJECT APPOUTLOOK 'outlook.application' . * Mensajes vía MAPI CALL METHOD OF APPOUTLOOK 'GetNameSpace' = NAMESPACE EXPORTING #1 = 'MAPI'. * Crea objeto nuevo ITEM ( nuevo mensaje ) CALL METHOD OF APPOUTLOOK 'CreateItem' = APPITEM EXPORTING #1 = '0'. SET PROPERTY OF APPITEM 'To' = P_TO. SET PROPERTY OF APPITEM 'Bcc' = 'xxxx@xxxx.com'. P_SUBJ = T166U-DRTYP. FRACE01 = ''. CONCATENATE P_SUBJ 'MATESI N°:' EKKO-EBELN INTO P_SUBJ SEPARATED BY SPACE. SET PROPERTY OF APPITEM 'Subject' = P_SUBJ. frace02 = 'xxxxxx '. frace03 = ‘xxxxxx,'. frace04 = 'xxxxx'. frace05 = xxxxxx.'. CONCATENATE FRACE01 FRACE02 FRACE03 FRACE04 FRACE05 INTO P_BODY SEPARATED BY SPACE. SET PROPERTY OF APPITEM 'Body' = P_BODY. * Se adjunta el archivo IF NOT W_ARCHIVO IS INITIAL. CALL METHOD OF APPITEM 'Attachments' = ATTACHMENTS. CALL METHOD OF ATTACHMENTS 'Add' EXPORTING #1 = W_ARCHIVO. ENDIF. **************************************** * Envíar directamente CALL METHOD OF APPITEM 'Send'. *Se muestra la pantalla del outlook ******** CALL METHOD OF appitem 'Display'. * Libera Espacio del objeto FREE OBJECT ATTACHMENTS. FREE OBJECT APPITEM. FREE OBJECT NAMESPACE. * Cierra Outlook ( solo si se quiere que quede cerrado ) ***CALL METHOD OF appoutlook 'Quit'. FREE OBJECT APPOUTLOOK. ENDFORM. " ENVIA-MAIL Espero puedan ayudarme, Saludos! |
#2
|
||||
|
||||
Ayúdenme por favor, no se como solucionar este problema, puedo bajar esos documentos anexos como bajo el documento de la orden o petición a mi pc y luego adjuntarlos a outlook?
Saludos. |
#3
|
|||
|
|||
Hola.
A ver si esto te puede ayudar. Para ver los documentos anexados a un objeto puedes usar la función 'BDS_GOS_CONNECTIONS_GET', te pongo un ejemplo de recuperación de documentos anexados a un Plan de entregas: LOGICAL_SYSTEM CLASSNAME BUS2035 (BO correspondiente a tu Petición de oferta) OBJKEY 0008701011 CLIENT 100 La tabla resultado de ta todos los docs anexados al objeto que indicas. Ahora con la función 'SO_DOCUMENTS_MANAGER' puedes descargar los documentos leídos anteriormente entrando los siguientes parámetros: ACTIVITY EXPO y en la tabla indicar que objeto quieres leer obtenido en la tabla de la func_1 en el campo LOIO_ID mapeando el contenido a estos campos. FOLTP FOLYR FOLNO OBJTP OBJYR OBJNO Bueno, ha sido una pruebilla un poco rápida, espero te sirva o te de alguna pista al menos. Un saludo. |
#4
|
||||
|
||||
Ya solvente de otra manera!
Hola amigo gracias por la respuesta, lamentablemente no pude utilizar lo que me propusiste o hacer las pruebas. A cambio de ello hice esto en el programa:
Coloque un mensaje de confirmación: CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = 'Confirmación de Envio de Correo.' TEXT_QUESTION = '¿Desea enviar el correo Automáticamente o Visualizarlo en pantalla antes de enviarlo?' TEXT_BUTTON_1 = 'Enviar' ICON_BUTTON_1 = 'ICON_CHECKED' TEXT_BUTTON_2 = 'Visualizar' ICON_BUTTON_2 = 'ICON_CHECKED' DISPLAY_CANCEL_BUTTON = ' ' POPUP_TYPE = 'ICON_MESSAGE_QUESTION' IMPORTING ANSWER = ANS. Y luego coloque esto, para verificar que desea hacer el comprador: IF ANS = 1. * Envíar directamente CALL METHOD OF APPITEM 'Send'. ELSE. *Se muestra la pantalla del outlook CALL METHOD OF APPITEM 'Display'. ENDIF. Y así ya pueden adjuntar desde outlook, esto lo hacemos para evitar que se suban archivos a los servidores de SAP, y que llegue a bajar el rendimiento del sistema. Saludos y Gracias! |
#5
|
|||
|
|||
Excelente me sirvio para la necesidad requerida.
eXCELENTE APORTE COMPAÑERO. gRACIAS
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|