Skip to Content
author's profile photo Former Member
Former Member

How to send converted PDF from OTF via email

Hi Experts,

Greetings! How can I send the PDF file from FM 'CONVERT_OTF' via email?

I was stuck on this code:

*--- Convert OTF data to pdf
  CLEAR: i_otf, i_pdf.
  i_otf[] = gs_ssfcrescl-otfdata.
  CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
      format                = 'PDF'
      max_linewidth         = 132
    IMPORTING
      bin_filesize          = v_bin_filesize
    TABLES
      otf                   = i_otf
      lines                 = i_pdf
    EXCEPTIONS
      err_max_linewidth     = 1
      err_format            = 2
      err_conv_not_possible = 3
      err_bad_otf           = 4
      OTHERS                = 5.
  CHECK sy-subrc = 0 AND NOT i_pdf[] IS INITIAL.

Thanks in advance for the help.

Add a comment
10|10000 characters needed characters exceeded

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Oct 08, 2008 at 04:49 AM

    Hi

    DATA:
     I_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,
     I_TLINE TYPE TABLE OF TLINE WITH HEADER LINE,
     I_RECEIVERS TYPE  TABLE OF SOMLRECI1 WITH HEADER LINE,
     I_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
     I_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
     I_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
     I_OBJBIN LIKE SOLISTI1  OCCURS 0 WITH HEADER LINE,
     I_RECLIST LIKE SOMLRECI1  OCCURS 0 WITH HEADER LINE.
    
    DATA:
      W_OBJHEAD TYPE SOLI_TAB,
      W_CTRLOP TYPE SSFCTRLOP,
      W_COMPOP TYPE SSFCOMPOP,
      W_RETURN TYPE SSFCRESCL,
      W_DOC_CHNG TYPE SODOCCHGI1,
      W_DATA TYPE SODOCCHGI1,
      W_BUFFER TYPE STRING.
    
    DATA:
     V_FORM_NAME TYPE RS38L_FNAM,
     V_LEN_IN LIKE SOOD-OBJLEN,
     V_LEN_OUT LIKE SOOD-OBJLEN,
     V_LEN_OUTN TYPE I,
     V_LINES_TXT TYPE I,
     V_LINES_BIN TYPE I.
    
    
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        FORMNAME           = ' '---------> smartform
      IMPORTING
        FM_NAME            = V_FORM_NAME
      EXCEPTIONS
        NO_FORM            = 1
        NO_FUNCTION_MODULE = 2.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    
    W_CTRLOP-GETOTF = 'X'.
    W_CTRLOP-NO_DIALOG = 'X'.
    W_COMPOP-TDNOPREV = 'X'.
    
    
    CALL FUNCTION '/1BCDWB/SF00000482'
      EXPORTING
        CONTROL_PARAMETERS = W_CTRLOP
        OUTPUT_OPTIONS     = W_COMPOP
        USER_SETTINGS      = 'X'
      IMPORTING
        JOB_OUTPUT_INFO    = W_RETURN
      EXCEPTIONS
        FORMATTING_ERROR   = 1
        INTERNAL_ERROR     = 2
        SEND_ERROR         = 3
        USER_CANCELED      = 4.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    
    I_OTF[] = W_RETURN-OTFDATA[].
    
    
    
    CALL FUNCTION 'CONVERT_OTF'
      EXPORTING
        FORMAT                = 'PDF'
        MAX_LINEWIDTH         = 132
      IMPORTING
        BIN_FILESIZE          = V_LEN_IN
      TABLES
        OTF                   = I_OTF
        LINES                 = I_TLINE
      EXCEPTIONS
        ERR_MAX_LINEWIDTH     = 1
        ERR_FORMAT            = 2
        ERR_CONV_NOT_POSSIBLE = 3
        ERR_BAD_OTF           = 4.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    
    
    LOOP AT I_TLINE.
    
      TRANSLATE I_TLINE USING '~'.
      CONCATENATE W_BUFFER I_TLINE INTO W_BUFFER.
    
    ENDLOOP.
    
    TRANSLATE W_BUFFER USING '~'.
    
    
    DO.
      I_RECORD = W_BUFFER.
      APPEND I_RECORD.
      SHIFT W_BUFFER LEFT BY 255 PLACES.
      IF W_BUFFER IS INITIAL.
        EXIT.
      ENDIF.
    ENDDO.
    
    REFRESH :
      I_RECLIST,
      I_OBJTXT,
      I_OBJBIN,
      I_OBJPACK.
    
    CLEAR W_OBJHEAD.
    
    I_OBJBIN[] = I_RECORD[].
    DESCRIBE TABLE I_OBJBIN LINES V_LINES_BIN.
    
    
    I_OBJTXT = 'Find attached the output of the smartform.'.
    APPEND I_OBJTXT.
    I_OBJTXT = 'Regards,'.
    APPEND I_OBJTXT.
    I_OBJTXT = 'Sravanthi'.
    APPEND I_OBJTXT.
    
    DESCRIBE TABLE I_OBJTXT LINES V_LINES_TXT.
    
    
    W_DOC_CHNG-OBJ_NAME = 'Smartform'.
    W_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10 .
    W_DOC_CHNG-OBJ_DESCR  = 'Smart form output'.
    W_DOC_CHNG-SENSITIVTY = 'F'.
    W_DOC_CHNG-DOC_SIZE = V_LINES_TXT * 255.
    
    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_LINES_TXT.
    I_OBJPACK-DOC_TYPE = 'RAW'.
    APPEND I_OBJPACK.
    
    I_OBJPACK-TRANSF_BIN = 'X'.
    I_OBJPACK-HEAD_START = 1.
    I_OBJPACK-HEAD_NUM = 1.
    I_OBJPACK-BODY_START = 1.
    I_OBJPACK-BODY_NUM = V_LINES_BIN.
    I_OBJPACK-DOC_TYPE  = 'PDF'.
    I_OBJPACK-OBJ_NAME = 'Smartform'.
    CONCATENATE 'smartform output' 'pdf'
    INTO I_OBJPACK-OBJ_DESCR.
    I_OBJPACK-DOC_SIZE = V_LINES_BIN * 255.
    APPEND I_OBJPACK.
    
    CLEAR I_RECLIST.
    
    
    I_RECLIST-RECEIVER = ' '.---------->email id
    I_RECLIST-EXPRESS  = 'X'.
    I_RECLIST-REC_TYPE  = 'U'.
    APPEND I_RECLIST.
    
    
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        DOCUMENT_DATA              = W_DOC_CHNG
        PUT_IN_OUTBOX              = 'X'
        commit_work                = 'X'
      TABLES
        PACKING_LIST               = I_OBJPACK
       CONTENTS_BIN                = I_OBJBIN
        OBJECT_HEADER              = W_OBJHEAD
        CONTENTS_TXT               = I_OBJTXT
        RECEIVERS                  = I_RECLIST
      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.
          WRITE:/ 'Error When Sending the File', sy-subrc.
        ELSE.
          WRITE:/ 'Mail sent'.
        ENDIF.

    After excuting this program check the status of the email in the SOST transaction

    Regards,

    sravanthi

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.