Enviar PDF a correo externo

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • josechc23
    Member
    • feb
    • 75

    #1

    Enviar PDF a correo externo

    Hola amigos del Foro .. tengo un problema ... estoy intentando enviar un archivo en un correo de una cuenta externa ... pero no consigo entender el funcionamiento y el armado de los parametros que requiere la funcion que lo hace ... alguien de ustedes me puede a yudar a entenderla ... y a usarla

    Aqui les anexo el codigo en donde armo el archivo pdf ojala me puedan ayudar.

    De esta manera armo el PDF
    data :
    BEGIN OF T_TSP01 OCCURS 0,
    RQIDENT like TSP01-RQIDENT ,
    END OF T_TSP01.
    data : NUMBYTES TYPE I,
    PDFSPOOLID LIKE TSP01-RQIDENT,
    JOBNAME LIKE TBTCJOB-JOBNAME,
    JOBCOUNT LIKE TBTCJOB-JOBCOUNT.
    * NAME LIKE TST01-DNAME,
    * OBJTYPE LIKE RSTSTYPE-TYPE.
    data :
    PDF LIKE TLINE OCCURS 100 WITH HEADER LINE.
    data : D_NAME_FILE(20) type c.
    DATA: CANCEL.

    SELECT RQIDENT
    INTO (T_TSP01-RQIDENT)
    FROM TSP01
    WHERE RQOWNER EQ SY-UNAME and
    RQCLIENT EQ SY-MANDT.
    APPEND T_TSP01.
    ENDSELECT.
    SORT T_TSP01 DESCENDING.

    PERFORM CREA_NOMBRE_ARCH CHANGING D_NAME_FILE.
    CONCATENATE P_FILE D_NAME_FILE INTO P_FILE.

    CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
    EXPORTING
    SRC_SPOOLID = T_TSP01-RQIDENT
    NO_DIALOG = ''
    IMPORTING
    PDF_BYTECOUNT = NUMBYTES
    PDF_SPOOLID = PDFSPOOLID
    BTC_JOBNAME = JOBNAME
    BTC_JOBCOUNT = JOBCOUNT
    TABLES
    PDF = PDF
    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.


    IF SY-SUBRC EQ 0.

    CALL FUNCTION 'DOWNLOAD'
    EXPORTING
    BIN_FILESIZE = NUMBYTES
    FILENAME = P_FILE
    FILETYPE = 'BIN'
    IMPORTING
    ACT_FILENAME = P_FILE
    FILESIZE = NUMBYTES
    CANCEL = CANCEL
    TABLES
    DATA_TAB = PDF
    EXCEPTIONS
    FILE_WRITE_ERROR = 1
    NO_BATCH = 2
    GUI_REFUSE_FILETRANSFER = 3
    INVALID_TYPE = 4
    NO_AUTHORITY = 5
    UNKNOWN_ERROR = 6.

    IF SY-SUBRC EQ 0.
    DELETE FROM TSP01 WHERE RQIDENT EQ T_TSP01-RQIDENT.
    ENDIF.

    ENDIF.



    Con esta función intento enviarlo por correo.

    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    DOCUMENT_DATA = DOC_DATA
    PUT_IN_OUTBOX = 'X'
    TABLES
    PACKING_LIST = I_OBJPACK
    OBJECT_HEADER = OBJHEAD
    CONTENTS_BIN = i_cont_bin
    CONTENTS_TXT = OBJTXT
    RECEIVERS = IT_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.
    .................................................. ................
    Jose Chavez Campos
    Consultor SAP ABAP/WF

    IT CubiK Consulting
    Dando Valor a su Negocio
    http://www.it-cubik.com.mx
    .................................................. ................
  • VLozano
    Senior Member
    • nov
    • 124

    #2
    Échale un vistazo a esto:
    Update: I’ve wrote a function module that allows you to send VERY SIMPLE mails (no attachments, no weird things) here. Long time ago, before becoming a tuly idiot, I’ve had to face a li…


    Lo sé, está en inglés, pero es lo que hay. De ahí puedes sacar lo que necesitas tanto para pdf como para cualquier tipo de archivo que quieras adjuntar.

    La función que usa no es exactamente la misma, porque la que había en el momento de escribirse ese post no permitía modificar el remitente del envío, cosa que el usuario exigía (sigh).

    Suerte.
    "Porque algunos sabemos que somos parte del problema"
    - Pequeña guía para escribir mensajes en foros técnicos -

    Comentario

    Trabajando...