07-29-2010 1:35 PM
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
07-29-2010 1:45 PM
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.
07-29-2010 1:59 PM
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
07-30-2010 7:38 AM
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.
08-04-2010 1:01 PM