Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Smart Forms

Former Member
0 Likes
468

1) Are there any standard Smart Forms ? If, Give some examples ?

2)How to attach a Smart Form to Mail ?

3)What will be the format of the Smart Form attached to the Mail ?

4)How to DEBUG a Smart Form ?

Please help and enjoy points for appropriate answers .............

Swapna.

1 ACCEPTED SOLUTION
Read only

alex_m
Active Contributor
0 Likes
438

1. There is lot of std forms available. Ex: LE_SHP_DELNOTE(Delivery note).

2. You want to send the smartfrom output mail, you need set medium as MAIL in NACE transaction.

4. Put BREAK point in smartform code or debug the FM generated by Smartfrom.

2 REPLIES 2
Read only

alex_m
Active Contributor
0 Likes
439

1. There is lot of std forms available. Ex: LE_SHP_DELNOTE(Delivery note).

2. You want to send the smartfrom output mail, you need set medium as MAIL in NACE transaction.

4. Put BREAK point in smartform code or debug the FM generated by Smartfrom.

Read only

Former Member
0 Likes
438

hi Swapna,

1. Go to SMARTFORMS transaction. Press F4 and you can see the existing smartforms. based on the descriptions, you can filter out the one you need.

or

check also tables TNAPR and TTXFP.

Also see the note 595812: it explain how to download the preconfigured smartforms.

Detailed information can be accessed at the site:

http://service.sap.com/preconfiguredforms OR

http://service.sap.com/smb/development/preconfiguredforms.

To download preconfigured smartform package, please:

1. Go to http://service.sap.com/installations, select tab "download".

2. On the right hand side screen, locate navigation tree node

SAP Software Distribution Center->Download->Installations and Upgrades->

Entry by Application Group.

3. In the main window (right hand side), follow the path

SAP Best Practices->Best Practices for mySAP All-in-One-> PRECONFIGURED

SMART FORMS, you can find available preconfigured smartform versions.

2. chk this sample code for sending the smartform as pdf attachement through mail.

  • 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 = 'zyz@wipro.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.

3. PDF

4. Check this info.

For debugging -

1. Write BREAK POINT in the code window.

2. Put a break point on the call function in the driver program

3. Put a break point in the generated Function module.

OR

1) DEBUG Smartform:

1) One way to debug smartform is to debug the Function Module of that smartforms.

If you want to debug particular smartform node that the solution would be,

insert a "Program Line" just above the node you want to debug and this program line write a normal abap breakpoint.

So whenever you call the smartforms, it will stop at this breakpoint and you can debug onwards.

2) SFTRACE can be used for debugging SMARTFORMS.

Read More here.

http://help.sap.com/saphelp_erp2004/helpdata/en/49/c3d8a4a05b11d5b6ef006094192fe3/frameset.htm

OR

Four ways you can debugging.....

1.place SFTRACE inplace where we enter T_CODE and press ENTER.

after that press F8.

2 ./H

3 /SH

4.after generating the function module there is a button DEBUGGING

Test smartform:

1.after creating FM direct press F8 or Excute(button) then select print preview.

~~Guduri