Skip to Content
avatar image
Former Member

Smartforms to PDF

Hello,

How can I easily send a smartforms by mail in PDF format ?

I'm in CRM 3.1.

Thanks for any answers that can help,

BenoĆ®

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

4 Answers

  • Best Answer
    avatar image
    Former Member
    Oct 14, 2005 at 10:03 AM

    Hi benoit,

    check this link...

    it helps you creating a smartform and sending mail in pdf format.

    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/8fd773b3-0301-0010-eabe-82149bcc292e

    reward points for helpfull answers and close the thread if your question is solved

    regards,

    venu.

    Add comment
    10|10000 characters needed characters exceeded

  • Oct 14, 2005 at 10:18 AM

    Hi,

    The below sample code is for 4.6C.Try this out.

    Kindly reward points by clicking the star on the left of reply,if it helps.

    • 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

    wa_objhead TYPE soli_tab,

    w_ctrlop TYPE ssfctrlop,

    w_compop TYPE ssfcompop,

    w_return TYPE ssfcrescl,

    wa_doc_chng typE sodocchgi1,

    w_data TYPE sodocchgi1,

    wa_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 = 'ZZZ_TEST1'

    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.

    • Fehlerhandling

    if sy-subrc <> 0.

    endif.

    loop at i_tline.

    translate i_tline using '~'.

    concatenate wa_buffer i_tline into wa_buffer.

    endloop.

    translate wa_buffer using '~'.

    do.

    i_record = wa_buffer.

    append i_record.

    shift wa_buffer left by 255 places.

    if wa_buffer is initial.

    exit.

    endif.

    enddo.

    • Attachment

    refresh:

    i_reclist,

    i_objtxt,

    i_objbin,

    i_objpack.

    clear wa_objhead.

    i_objbin[] = i_record[].

    • Create Message Body

  • Title and Description

  • i_objtxt = 'test with pdf-Attachment!'.

    append i_objtxt.

    describe table i_objtxt lines v_lines_txt.

    read table i_objtxt index v_lines_txt.

    wa_doc_chng-obj_name = 'smartform'.

    wa_doc_chng-expiry_dat = sy-datum + 10.

    wa_doc_chng-obj_descr = 'smartform'.

    wa_doc_chng-sensitivty = 'F'.

    wa_doc_chng-doc_size = v_lines_txt * 255.

    • Main Text

  • wa_doc_chng-doc_size = ( v_lines_txt - 1 ) * 255 + strlen( i_objtxt )

  • *.

    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.

    • Attachment

  • (pdf-Attachment)

  • i_objpack-transf_bin = 'X'.

    i_objpack-head_start = 1.

    i_objpack-head_num = 0.

    i_objpack-body_start = 1.

    • Länge des Attachment ermitteln

    describe table i_objbin lines v_lines_bin.

    read table i_objbin index v_lines_bin.

    i_objpack-doc_size = v_lines_bin * 255 .

    i_objpack-body_num = v_lines_bin.

    i_objpack-doc_type = 'PDF'.

    i_objpack-obj_name = 'smart'.

    i_objpack-obj_descr = 'test'.

    append i_objpack.

    clear i_reclist.

    i_reclist-receiver = xyz@yahoo.com'.

    i_reclist-rec_type = 'U'.

    append i_reclist.

    call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'

    EXPORTING

    document_data = wa_doc_chng

    put_in_outbox = 'X'

    TABLES

    packing_list = i_objpack

    object_header = wa_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.

    Message was edited by: Jayanthi Jayaraman

Add comment
10|10000 characters needed characters exceeded

  • Former Member

    Jayanthi,

    Thanks for your reply. I copied your code and recieved an error of 6(x_error). Any ideas.

    Here is my code...

    report ztestmail.

    *****

    DATA: ZIS_BOOK TYPE TABLE OF PPFTBOOK WITH HEADER LINE.

    *****

    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

    wa_objhead TYPE soli_tab,

    w_ctrlop TYPE ssfctrlop,

    w_compop TYPE ssfcompop,

    w_return TYPE ssfcrescl,

    wa_doc_chng typE sodocchgi1,

    w_data TYPE sodocchgi1,

    wa_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 = 'SPPFDEMO_BOOK'

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

    ZIS_BOOK-ID = 'TEST'.

    APPEND ZIS_BOOK.

    CALL FUNCTION v_form_name

    EXPORTING

    control_parameters = w_ctrlop

    output_options = w_compop

    user_settings = 'X'

    IS_BOOK = ZIS_BOOK

    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.

    • Fehlerhandling

    if sy-subrc <> 0.

    endif.

    loop at i_tline.

    translate i_tline using '~'.

    concatenate wa_buffer i_tline into wa_buffer.

    endloop.

    translate wa_buffer using '~'.

    do.

    i_record = wa_buffer.

    append i_record.

    shift wa_buffer left by 255 places.

    if wa_buffer is initial.

    exit.

    endif.

    enddo.

    • Attachment

    refresh:

    i_reclist,

    i_objtxt,

    i_objbin,

    i_objpack.

    clear wa_objhead.

    i_objbin[] = i_record[].

    • Create Message Body

  • Title and Description

  • i_objtxt = 'test with pdf-Attachment!'.

    append i_objtxt.

    describe table i_objtxt lines v_lines_txt.

    read table i_objtxt index v_lines_txt.

    wa_doc_chng-obj_name = 'smartform'.

    wa_doc_chng-expiry_dat = sy-datum + 10.

    wa_doc_chng-obj_descr = 'smartform'.

    wa_doc_chng-sensitivty = 'F'.

    wa_doc_chng-doc_size = v_lines_txt * 255.

    • Main Text

  • wa_doc_chng-doc_size = ( v_lines_txt - 1 ) * 255 + strlen( i_objtxt )

  • *.

    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.

    • Attachment

  • (pdf-Attachment)

  • i_objpack-transf_bin = 'X'.

    i_objpack-head_start = 1.

    i_objpack-head_num = 0.

    i_objpack-body_start = 1.

    • Länge des Attachment ermitteln

    describe table i_objbin lines v_lines_bin.

    read table i_objbin index v_lines_bin.

    i_objpack-doc_size = v_lines_bin * 255 .

    i_objpack-body_num = v_lines_bin.

    i_objpack-doc_type = 'PDF'.

    i_objpack-obj_name = 'smart'.

    i_objpack-obj_descr = 'test'.

    append i_objpack.

    clear i_reclist.

    i_reclist-receiver = 'scottmiller47@yahoo.com'.

    i_reclist-rec_type = 'U'.

    append i_reclist.

    call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'

    EXPORTING

    document_data = wa_doc_chng

    put_in_outbox = 'X'

    TABLES

    packing_list = i_objpack

    object_header = wa_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.

    data: l type sy-subrc.

    l = sy-subrc.

    commit work.

    BREAK-POINT.

  • avatar image
    Former Member
    Oct 14, 2005 at 10:17 AM

    Hi,

    Check out the Forum on this topic, u will find lots of discussions made.

    smartform-otf-as-pdf-and-sending-as-emailattachmen

    Regards,

    Anjali

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Nov 07, 2007 at 10:39 AM

    Ok

    Add comment
    10|10000 characters needed characters exceeded