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

Incorrect nesting in smartfroms program-line

Former Member
0 Likes
825

Hi .

when i have use code in different program it's work fine .

but when same code use in smartforms program-lines it's give me following error.

Incorrect nesting: Before the statement "FORM", the structure introduced by "FUNCTION" must be concluded by "ENDFUNCTION" . . .

Regards.

Sam.

6 REPLIES 6
Read only

Former Member
0 Likes
699

Sam,

if you can paste the code here, can assyst you better

SR

Read only

0 Likes
699

HI

My code

DATA mwsbp TYPE komp-mwsbp .

data : p_ebeln TYPE ekpo-ebeln ,

p_ebelp TYPE ekpo-ebelp .

*data: p_mwsbp TYPE komp-mwsbp .

PERFORM calculate_tax USING p_ebeln p_ebelp CHANGING mwsbp .

*

FORM calculate_tax USING p_ebeln TYPE ekpo-ebeln

p_ebelp TYPE ekpo-ebelp

CHANGING p_mwsbp TYPE komp-mwsbp .

CONSTANTS: bstyp_info VALUE 'I',

bstyp_ordr VALUE 'W',

bstyp_banf VALUE 'B',

bstyp_best VALUE 'F',

bstyp_anfr VALUE 'A',

bstyp_kont VALUE 'K',

bstyp_lfpl VALUE 'L',

bstyp_lerf VALUE 'Q'.

DATA : taxcom TYPE taxcom ,

t_konv TYPE TABLE OF komv WITH HEADER LINE .

DATA: BEGIN OF tkomv OCCURS 50.

INCLUDE STRUCTURE komv.

DATA: END OF tkomv.

DATA: BEGIN OF tkomvd OCCURS 50. "Belegkonditionen

INCLUDE STRUCTURE komvd.

DATA: END OF tkomvd.

DATA : BEGIN OF tkomvh OCCURS 50.

INCLUDE STRUCTURE komv.

DATA : vtext LIKE t685t-vtext.

DATA : END OF tkomvh.

SELECT SINGLE *

INTO ekko

FROM ekko

WHERE ebeln = p_ebeln .

SELECT SINGLE *

INTO ekpo

FROM ekpo

WHERE ebeln = p_ebeln

AND ebelp = p_ebelp .

SELECT SINGLE *

INTO t001

FROM t001

WHERE bukrs = ekko-bukrs .

taxcom-bukrs = ekpo-bukrs.

taxcom-budat = ekko-bedat.

taxcom-waers = ekko-waers.

taxcom-kposn = ekpo-ebelp.

taxcom-mwskz = ekpo-mwskz.

taxcom-txjcd = ekpo-txjcd.

taxcom-shkzg = 'H'.

taxcom-xmwst = 'X'.

IF ekko-bstyp EQ bstyp_best.

taxcom-wrbtr = ekpo-netwr.

ELSE.

taxcom-wrbtr = ekpo-zwert.

ENDIF.

taxcom-lifnr = ekko-lifnr.

taxcom-land1 = ekko-lands.

taxcom-ekorg = ekko-ekorg.

taxcom-hwaer = t001-waers.

taxcom-llief = ekko-llief.

taxcom-bldat = ekko-bedat.

taxcom-matnr = ekpo-ematn.

taxcom-werks = ekpo-werks.

taxcom-bwtar = ekpo-bwtar.

taxcom-matkl = ekpo-matkl.

taxcom-meins = ekpo-meins.

IF ekko-bstyp EQ bstyp_best.

taxcom-mglme = ekpo-menge.

ELSE.

IF ekko-bstyp EQ bstyp_kont AND ekpo-abmng GT 0.

taxcom-mglme = ekpo-abmng.

ELSE.

taxcom-mglme = ekpo-ktmng.

ENDIF.

ENDIF.

IF taxcom-mglme EQ 0.

taxcom-mglme = 1000.

ENDIF.

taxcom-mtart = ekpo-mtart.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CALL FUNCTION 'J_1BSA_COMPONENT_ACTIVE'

EXPORTING

bukrs = ekko-bukrs

component = 'BR'

EXCEPTIONS

component_not_active = 1

OTHERS = 2.

*endfunction.

IF sy-subrc IS INITIAL.

komk-mandt = ekko-mandt.

komk-kalsm = ekko-kalsm.

IF ekko-kalsm = ''.

komk-kalsm = 'RM0000'.

ENDIF.

komk-kappl = 'M'.

komk-waerk = ekko-waers.

komk-knumv = ekko-knumv.

komk-lifnr = ekko-lifnr.

komp-kposn = ekpo-ebelp.

komp-matnr = ekpo-matnr.

komp-werks = ekpo-werks.

komp-matkl = ekpo-matkl.

komp-infnr = ekpo-infnr.

komp-evrtn = ekpo-konnr.

komp-evrtp = ekpo-ktpnr.

CALL FUNCTION 'RV_PRICE_PRINT_ITEM'

EXPORTING

comm_head_i = komk

comm_item_i = komp

language = 'E'

TABLES

tkomv = tkomv

tkomvd = tkomvd.

CALL FUNCTION 'J_1B_NF_PO_DISCOUNTS'

EXPORTING

i_kalsm = ekko-kalsm

i_ekpo = ekpo

IMPORTING

e_ekpo = ekpo

TABLES

i_konv = t_konv.

IF NOT ekko-llief IS INITIAL.

taxcom-lifnr = ekko-llief.

ENDIF.

ENDIF.

CALL FUNCTION 'FIND_TAX_SPREADSHEET'

EXPORTING

buchungskreis = t001-bukrs

EXCEPTIONS

not_found = 1

OTHERS = 2.

CALL FUNCTION 'CALCULATE_TAX_ITEM'

EXPORTING

i_taxcom = taxcom

IMPORTING

e_taxcom = taxcom

EXCEPTIONS

mwskz_not_defined = 1

mwskz_not_found = 2

mwskz_not_valid = 3

steuerbetrag_falsch = 4

country_not_found = 5

OTHERS = 6.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

p_mwsbp = taxcom-wmwst .

WRITE:/ mwsbp .

ENDFORM. " calculate_tax

Regard

Sam

Read only

0 Likes
699

HI,

Instead of defining the FORM Implementation in Program Line copy the code to Global Definitions->Form Routines.

Read only

0 Likes
699

Hi,

It give error

" Statement is not accessible."

Regards.

Sam

Read only

0 Likes
699

Hi,

i don't get any error for this.

Check this screen shot in this link..

Perform statement in Program Lines

http://i678.photobucket.com/albums/vv145/avinashkodarapu/Snap1.jpg

From implementation in Form Routine Tab

http://i678.photobucket.com/albums/vv145/avinashkodarapu/Snap2.jpg

Read only

0 Likes
699

hi,SAM

i have the same problem,i use the structor table DFIES as your komp.

i am new in sap,so i don't have any idear about this, if anyone have the solution for this problem,please write to me.

regards.

3KS.

chan.