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: 

I want to fetch kbetr using VBELN from VBRK and KONV Table.

Former Member
0 Kudos

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.

1 ACCEPTED SOLUTION

former_member1716
Active Contributor
0 Kudos

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 REPLIES 12

archanapawar
Contributor
0 Kudos

Hi Dheeraj,

You have just posted your code. What is your question?

0 Kudos

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

0 Kudos

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.

0 Kudos

And please note that occurs 10 syntax is obsolete, you should define types first and then internal table using that types.

0 Kudos

I use occurs 10 because I am getting error that internal table is not long enough

so I wrote this.

thanks dear.

former_member1716
Active Contributor
0 Kudos

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.


0 Kudos

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

0 Kudos

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.

0 Kudos

hi dheeraj ,

make sure you define this filed in either global or for interface.

Gaurav

0 Kudos

Define it with a DATA statement, just as SAP is suggesting by giving you this message

0 Kudos

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.

0 Kudos

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