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

Problem

Former Member
0 Likes
800

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
775

Hi,

are you calling this PERFORM in LOOP AT ITBSEGT?

I guess, you are not so you are facing this problem.

Please confirm.

ashish

7 REPLIES 7
Read only

Former Member
0 Likes
775

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.

Read only

Former Member
0 Likes
775

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

Read only

Former Member
0 Likes
776

Hi,

are you calling this PERFORM in LOOP AT ITBSEGT?

I guess, you are not so you are facing this problem.

Please confirm.

ashish

Read only

0 Likes
775

no am not performing in loop at ibsegt, oh this is the reason, is it.

Read only

0 Likes
775

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

Read only

0 Likes
775

Yes. You need to have LOOP AT ibsegt as I told earlier.

Regards,

Atish

Read only

Former Member
0 Likes
775

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.