12-11-2014 6:12 AM
DATA : BEGIN OF it_vbrk OCCURS 10,
vbeln type vbeln,
knumv type knumv,
END OF it_vbrk.
DATA : BEGIN OF it_konv OCCURS 10,
kschl type kschl,
knumv type knumv,
kbetr type kbetr,
END OF it_konv.
DATA :BEGIN OF it_final OCCURS 10,
vbeln type vbeln,
kschl type kschl,
knumv type knumv,
kbetr type kbetr,
END OF it_final.
PARAMETER : v_vbeln type vbrk-vbeln.
"v_knumv type vbrk-knumv.
break abap1.
SELECT vbeln knumv FROM VBRK
INTO it_VBRK
WHERE
VBELN = v_vbeln.
ENDSELECT.
"SELECT vbeln FROM vbrk INTO TABLE it_vbrk WHERE vbeln = v_vbeln.
*AND knumv = v_knumv.
*SELECT kbetr FROM konv INTO TABLE it_konv
* FOR ALL ENTRIES IN it_vbrk
* WHERE knumv = it_vbrk-knumv AND kschl =
*'ZF02' .
select kbetr
from konv client specified
into table it_konv
for all entries in it_vbrk
where mandt = sy-mandt
and knumv = it_vbrk-knumv
and kschl =
'ZF02' .
LOOP AT it_final.
it_final-kbetr = it_konv-kbetr.
READ TABLE it_vbrk WITH KEY vbeln = it_vbrk-vbeln.
IF sy-subrc = 0.
it_final-vbeln = it_vbrk-vbeln.
it_final-knumv = it_vbrk-knumv.
ENDIF.
APPEND it_final.
CLEAR : it_final,it_konv , it_vbrk.
ENDLOOP.
LOOP AT it_final.
WRITE : it_final-kbetr.
ENDLOOP.
12-11-2014 6:42 AM
Hi Dheeraj,
I guess you want to fetch the values of KBETR from KONV table based on the VBELN from VBRK table, If that is the case below code would help you. this code will display the values for all entries of VBELN in VBRK.
*&---------------------------------------------------------------------*
*& Report ZTESTZ
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztestz.
TYPES : BEGIN OF ty_vbrk,
vbeln TYPE vbrk-vbeln,
knumv TYPE vbrk-knumv,
END OF ty_vbrk,
BEGIN OF ty_konv,
knumv TYPE konv-knumv,
kbetr TYPE konv-kbetr,
END OF ty_konv.
DATA : lt_vbrk TYPE STANDARD TABLE OF ty_vbrk,
lt_konv TYPE STANDARD TABLE OF ty_konv,
lwa_vbrk TYPE ty_vbrk,
lwa_konv TYPE ty_konv.
SELECT vbeln knumv FROM vbrk
INTO TABLE lt_vbrk.
SELECT knumv kbetr FROM konv
INTO TABLE lt_konv
FOR ALL ENTRIES IN lt_vbrk
WHERE knumv = lt_vbrk-knumv.
LOOP AT lt_konv INTO lwa_konv.
READ TABLE lt_vbrk INTO lwa_vbrk WITH KEY knumv = lwa_konv-knumv.
WRITE : lwa_vbrk-vbeln , lwa_konv-knumv , lwa_konv-kbetr.
WRITE : /.
ENDLOOP.
Please let us know for further queries.
12-11-2014 6:19 AM
Hi Dheeraj,
You have just posted your code. What is your question?
12-11-2014 6:41 AM
yes dear I am getting dump for this code
kindly guide me where I am doing mistake and if possible solve it.
Thanks and regards
Dheeraj
12-11-2014 6:46 AM
Hi Dheeraj,
There is issue with your select query on VBRK.
SELECT vbeln knumv FROM VBRK
INTO it_VBRK
WHERE
VBELN = v_vbeln.
ENDSELECT.
You are using select endselect and trying to get contents in internal table., but you have not used 'into table'.
Change your select query to:
SELECT vbeln knumv FROM VBRK
INTO table it_vbrk
WHERE
VBELN = v_vbeln.
12-11-2014 6:49 AM
And please note that occurs 10 syntax is obsolete, you should define types first and then internal table using that types.
12-11-2014 7:45 AM
I use occurs 10 because I am getting error that internal table is not long enough
so I wrote this.
thanks dear.
12-11-2014 6:42 AM
Hi Dheeraj,
I guess you want to fetch the values of KBETR from KONV table based on the VBELN from VBRK table, If that is the case below code would help you. this code will display the values for all entries of VBELN in VBRK.
*&---------------------------------------------------------------------*
*& Report ZTESTZ
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztestz.
TYPES : BEGIN OF ty_vbrk,
vbeln TYPE vbrk-vbeln,
knumv TYPE vbrk-knumv,
END OF ty_vbrk,
BEGIN OF ty_konv,
knumv TYPE konv-knumv,
kbetr TYPE konv-kbetr,
END OF ty_konv.
DATA : lt_vbrk TYPE STANDARD TABLE OF ty_vbrk,
lt_konv TYPE STANDARD TABLE OF ty_konv,
lwa_vbrk TYPE ty_vbrk,
lwa_konv TYPE ty_konv.
SELECT vbeln knumv FROM vbrk
INTO TABLE lt_vbrk.
SELECT knumv kbetr FROM konv
INTO TABLE lt_konv
FOR ALL ENTRIES IN lt_vbrk
WHERE knumv = lt_vbrk-knumv.
LOOP AT lt_konv INTO lwa_konv.
READ TABLE lt_vbrk INTO lwa_vbrk WITH KEY knumv = lwa_konv-knumv.
WRITE : lwa_vbrk-vbeln , lwa_konv-knumv , lwa_konv-kbetr.
WRITE : /.
ENDLOOP.
Please let us know for further queries.
12-11-2014 6:44 AM
Just copy the code into your system and see the output. It should satisfy your requirement. Get back if you have any further questions.
Regards,
Satish
12-11-2014 7:43 AM
Thanks dear its working but I use parameter
parameter : v_vbeln type vbrk-vbeln.
thanks dear
I want to use same code in Smart forms(Invoice) but I am receiving error that
Field "LWA_KONV-KBETR" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement.
what should I suppose to do
thanks Dear.
12-11-2014 7:45 AM
hi dheeraj ,
make sure you define this filed in either global or for interface.
Gaurav
12-11-2014 7:46 AM
Define it with a DATA statement, just as SAP is suggesting by giving you this message
12-11-2014 7:58 AM
Hi Dheeraj,
You need to declare data in Types tab of Global definitions.
Data: lwa_konv TYPE ty_konv.
If you writing your code in Initialization, put lwa_konv in Input parameters as well.
12-11-2014 8:46 AM
Hi Dheeraj,
After declaring the variable globally, it is also important to mention the variable in the general attributes of the node that you are using as shown below, I have just shown an example here. You have to declare the entire work area LWA_KONV, either in the input or output where ever it suits.
Let us know on further issues.
Regards,
Satish