Application Development 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: 

Data fetching error

Former Member
0 Kudos

Hi Experts,

Im doiing data archeving for sale module. My issue is i had created a function module, in which ranges are used as select-options. while debugging i found that my input values are not getting validate. its moving out of the select query. . Please find the code. RANGES : s_bukrs FOR knb1-bukrs,

  • spras FOR t001-spras,

s_kunnr FOR kna1-kunnr,

s_mcod1 FOR kna1-mcod1,

s_name1 FOR kna1-name1,

s_vkorg FOR knvv-vkorg,

s_vtweg FOR knvv-vtweg.

LOOP AT s_s_if-t_select INTO l_s_select.

CASE l_s_select-fieldnm.

WHEN 'BUKRS'.

MOVE-CORRESPONDING l_s_select TO s_bukrs.

APPEND s_bukrs.

WHEN 'KUNNR'.

MOVE-CORRESPONDING l_s_select TO s_kunnr.

APPEND s_kunnr.

when 'MCOD1'.

MOVE-CORRESPONDING l_s_select TO s_MCOD1.

APPEND s_MCOD1.

when 'NAME1'.

MOVE-CORRESPONDING l_s_select TO s_NAME1.

APPEND s_NAME1.

when 'vkorg'.

MOVE-CORRESPONDING l_s_select TO s_VKORG.

APPEND s_VKORG.

when 'VTWEG'.

MOVE-CORRESPONDING l_s_select TO s_VTWEG.

APPEND s_VTWEG.

WHEN OTHERS.

ENDCASE.

ENDLOOP.

OPEN CURSOR WITH HOLD s_cursor FOR

SELECT a~kunnr

a~name1

a~ort01

a~pstlz

a~stras

a~mcod1

a~brsch

a~spras

b~bukrs

b~akont

c~bankl

c~bankn

FROM kna1 AS a INNER JOIN knb1 AS b

ON akunnr EQ bkunnr

INNER JOIN knbk AS c

ON bkunnr EQ ckunnr

  • "* a~spras eq spras and

where b~bukrs IN s_bukrs

and a~kunnr IN s_kunnr.

ELSE.

IF vit_final[] IS INITIAL.

FETCH NEXT CURSOR s_cursor INTO CORRESPONDING FIELDS OF

TABLE vit_final PACKAGE SIZE s_s_if-maxsize.

IF sy-subrc <> 0.

CLOSE CURSOR s_cursor.

RAISE no_more_data.

ENDIF. .

please your solutions to solve the issue

Regards,

Bharat

4 REPLIES 4

Sandeep_Kumar
Product and Topic Expert
Product and Topic Expert
0 Kudos

hi,

check the way you are bulding the range table:

WHEN 'BUKRS'.

s_bukrs-sign = 'I'.

s_bukrs-option = 'EQ'.

MOVE-CORRESPONDING l_s_select TO s_bukrs-low.

APPEND s_bukrs.

0 Kudos

Hi,

In debugging mode, ranges i/p is taking sign-I options-EQ companycode-low-370P. In the select query, its not validating this i/p. its moving to next close stmt.

Thanks & Regards,

Bharat. K

0 Kudos

Hi Experts,

While deugging program,its showing error "cursor already closed or net yet open". Please check the code. Provide ur solutions to solve the issue.

OPEN CURSOR WITH HOLD s_cursor FOR

SELECT a~kunnr

a~name1

a~ort01

a~pstlz

a~stras

a~mcod1

a~brsch

a~spras

b~bukrs

b~akont

c~bankl

c~bankn

FROM kna1 AS a INNER JOIN knb1 AS b

ON akunnr EQ bkunnr

INNER JOIN knbk AS c

ON bkunnr EQ ckunnr

where b~bukrs in s_bukrs

and a~kunnr in s_kunnr.

ELSE.

IF vit_final[] IS INITIAL.

FETCH NEXT CURSOR s_cursor INTO CORRESPONDING FIELDS OF

TABLE vit_final PACKAGE SIZE s_s_if-maxsize.

IF sy-subrc <> 0.

CLOSE CURSOR s_cursor.

RAISE no_more_data.

ENDIF.

Former Member
0 Kudos

issue solved. untill data moves into cursor, it will not closed.