‎2007 Oct 25 5:26 AM
Hi Experts
I have used the following query, my problem is, there is data in ibsegt but this query is not working, its not taking the ibsegt value. In debug mode when i put ibsegt-belnr, it gives no value, i dont know why, but when we put ibsegt[], it shows the values. Please suggest me.
Thanks in advance
Regards
Rajaram
FORM get_refdoc .
IF ibsegt-rebzg IS INITIAL.
SELECT SINGLE * FROM bkpf WHERE belnr = ibsegt-belnr
AND gjahr = p_gjahr
AND bukrs = p_bukrs.
ELSE.
SELECT SINGLE * FROM bkpf WHERE belnr = ibsegt-rebzg
AND gjahr = p_gjahr
AND bukrs = p_bukrs.
ENDIF.
ENDFORM.
‎2007 Oct 25 5:28 AM
Hi,
are you calling this PERFORM in LOOP AT ITBSEGT?
I guess, you are not so you are facing this problem.
Please confirm.
ashish
‎2007 Oct 25 5:27 AM
HI,
FORM get_refdoc .
IF ibsegt-rebzg IS <b>NOT </b>INITIAL.
SELECT SINGLE * FROM bkpf WHERE belnr = ibsegt-belnr
AND gjahr = p_gjahr
AND bukrs = p_bukrs.
ELSE.
SELECT SINGLE * FROM bkpf WHERE belnr = ibsegt-rebzg
AND gjahr = p_gjahr
AND bukrs = p_bukrs.
ENDIF.
ENDFORM.
rgds,
bharat.
‎2007 Oct 25 5:28 AM
Hi,
I think values are there in internal tale ibsegt[] but not in work area ibsegt.
You need to use LOOP AT ibsegt.
Regards,
Atish
‎2007 Oct 25 5:28 AM
Hi,
are you calling this PERFORM in LOOP AT ITBSEGT?
I guess, you are not so you are facing this problem.
Please confirm.
ashish
‎2007 Oct 25 5:32 AM
no am not performing in loop at ibsegt, oh this is the reason, is it.
‎2007 Oct 25 5:33 AM
Yes, that is the reason. As this internal table field value is not present you are not able to see values.
So you need to call this perform in the Loop block.
LOOP AT IBSEGT.
CALL PERFORM GET_REFDOC.
ENDLOOP.
FORM get_refdoc .
IF ibsegt-rebzg IS INITIAL and not ibsegt-belnr is initial.
SELECT SINGLE * FROM bkpf APPENDING table i_bkpf
WHERE bukrs = p_bukrs
AND belnr = ibsegt-belnr
AND gjahr = p_gjahr.
ELSEif not ibsegt-rebzg is initial.
SELECT SINGLE * FROM bkpf APPENDING table i_bkpfWHERE bukrs = p_bukrs
AND belnr = ibsegt-rebzg
AND gjahr = p_gjahr.
ENDIF.
ENDFORM.
Hope this helps.
ashish
Message was edited by:
Ashish Gundawar
‎2007 Oct 25 5:34 AM
Yes. You need to have LOOP AT ibsegt as I told earlier.
Regards,
Atish
‎2007 Oct 25 5:30 AM
FORM get_refdoc .
IF ibsegt-rebzg IS INITIAL and not ibsegt-belnr is initial.
SELECT SINGLE * FROM bkpf into table i_bkpfWHERE belnr = ibsegt-belnr
AND gjahr = p_gjahr
AND bukrs = p_bukrs.
ELSEif not ibsegt-rebzg is initial.
SELECT SINGLE * FROM bkpf into table i_bkpfWHERE belnr = ibsegt-rebzg
AND gjahr = p_gjahr
AND bukrs = p_bukrs.
ENDIF.
ENDFORM.