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

how to mail pdf previewed smartform ?

hi,

i have converted smartform to pdf. how can i mail it through FM 'SO_NEW_DOCUMENT_ATT_SEND_API1' Plz let me know..

Thanks,

Saurin Shah.

Add a comment
10|10000 characters needed characters exceeded

Related questions

4 Answers

  • Best Answer
    author's profile photo Former Member
    Former Member
    Posted on Jun 17, 2008 at 03:36 PM

    Hi,

    Have a look on the following code.

    • Internal Table declarations

    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,

    • Objects to send mail.

    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,

    • Work Area declarations

    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,"To convert from 132 to 255

    • Variables declarations

    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 = 'ZCS_FORM6'

    importing

    fm_name = v_form_name

    exceptions

    no_form = 1

    no_function_module = 2

    others = 3.

    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 v_form_name

    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

    OTHERS = 5.

    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

    OTHERS = 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.

    • Convert PDF from 132 to 255.

    LOOP AT i_tline.

    • Replacing space by ~

    TRANSLATE i_tline USING '~'.

    CONCATENATE w_buffer i_tline INTO w_buffer.

    ENDLOOP.

    • Replacing ~ by space

    TRANSLATE w_buffer USING '~'.

    DO.

    i_record = w_buffer.

    • Appending 255 characters as a record

    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.

    • Object with PDF.

    i_objbin[] = i_record[].

    DESCRIBE TABLE i_objbin LINES v_lines_bin.

    • Object with main text of the mail.

    i_objtxt = 'Find attached the output of the smart form.'.

    APPEND i_objtxt.

    i_objtxt = 'Regards,'.

    APPEND i_objtxt.

    i_objtxt = 'Chandu Valluri'.

    APPEND i_objtxt.

    DESCRIBE TABLE i_objtxt LINES v_lines_txt.

    • Document information.

    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'. "Functional object

    w_doc_chng-doc_size = v_lines_txt * 255.

    • Pack to main body as RAW.

    • Obj. to be transported not in binary form

    CLEAR i_objpack-transf_bin.

    • Start line of object header in transport packet

    i_objpack-head_start = 1.

    • Number of lines of an object header in object packet

    i_objpack-head_num = 0.

    • Start line of object contents in an object packet

    i_objpack-body_start = 1.

    • Number of lines of the object contents in an object packet

    i_objpack-body_num = v_lines_txt.

    • Code for document class

    i_objpack-doc_type = 'RAW'.

    APPEND i_objpack.

    • Packing as PDF.

    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.

    • Document information.

    CLEAR i_reclist.

    • e-mail receivers.

    i_reclist-receiver = sy-uname.

    i_reclist-express = 'X'.

    i_reclist-rec_type = 'B'. "SAP User

    APPEND i_reclist.

    • Sending mail.

    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

    EXPORTING

    document_data = w_doc_chng

    put_in_outbox = 'X'

    TABLES

    packing_list = i_objpack

    object_header = w_objhead

    contents_bin = i_objbin

    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 = 0.

    write:/ 'This is successful'.

    *MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    *WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    Regards,

    Chandu

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jun 16, 2008 at 07:42 AM

    Hi

    Z_SY_EMAIL_SFORM_AS_PDF

    This is the function module to send mail.

    Swetha

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Jun 16, 2008 at 07:46 AM

    Go to this [Link|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8cd6adbb-0301-0010-39ba-938c601d5db9] I guess it will help you to close this thread.

    Regards,

    SaiRam

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jun 16, 2008 at 08:17 AM
    • Convert PDF from 132 to 255.

    LOOP AT t_pdf_tab.

    • Replacing space by ~

    TRANSLATE t_pdf_tab USING ' ~'.

    CONCATENATE w_buffer t_pdf_tab INTO w_buffer.

    ENDLOOP.

    • Replacing ~ by space

    TRANSLATE w_buffer USING '~ '.

    DO.

    i_record = w_buffer.

    • Appending 255 characters as a record

    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.

    • Object with PDF.

    i_objbin[] = i_record[].

    DESCRIBE TABLE i_objbin LINES v_lines_bin.

    i_objtxt = 'Claim Expense Details'.

    append i_objtxt.

    DESCRIBE TABLE i_objtxt LINES v_lines_txt.

    • Document information.

    w_doc_chng-obj_name = 'Smartform'.

    w_doc_chng-expiry_dat = sy-datum + 10.

    w_doc_chng-obj_descr = 'Employee Expense Claim Details'.

    w_doc_chng-sensitivty = 'F'. "Functional object

    w_doc_chng-doc_size = v_lines_txt * 255.

    • Pack to main body as RAW.

    • Obj. to be transported not in binary form

    CLEAR i_objpack-transf_bin.

    • Start line of object header in transport packet

    i_objpack-head_start = 1.

    • Number of lines of an object header in object packet

    i_objpack-head_num = 0.

    • Start line of object contents in an object packet

    i_objpack-body_start = 1.

    • Number of lines of the object contents in an object packet

    i_objpack-body_num = v_lines_txt.

    • Code for document class

    i_objpack-doc_type = 'RAW'.

    APPEND i_objpack.

    • Packing as PDF.

    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'.

    i_objpack-obj_descr = 'Claim Expense Details'.

    i_objpack-doc_size = v_lines_bin * 255.

    APPEND i_objpack.

    • e-mail receivers.

    CLEAR i_reclist.

    i_reclist-receiver = email.

    i_reclist-express = 'X'.

    i_reclist-rec_type = 'U'. "Internet address

    APPEND i_reclist.

    • Sending mail.

    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

    EXPORTING

    document_data = w_doc_chng

    put_in_outbox = 'X'

    TABLES

    packing_list = i_objpack

    object_header = w_objhead

    CONTENTS_BIN = i_objbin

    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 <> 0.

    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    else.

    commit work and wait.

    message S021(zsc) with 'Mail request generated successfully'.

    ENDIF.

    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.