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 fetching multiple line.

Former Member
0 Likes
1,018

Hello Experts,


Can you please help me with the code. I don't know where i am doing wrong. I am not able to fetch multiple lines in ty_vend_org and ty_avl_sel only one line is getting fetched i guess it is something to do with the work area deceleration part.



*&---------------------------------------------------------------------*

*& Report  Z_AVL_TEST2

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

REPORT  z_avl_test2

NO STANDARD PAGE HEADING.

TABLES: but000,

         bbpm_but_frg0061,

         bbpd_pd_index,

         crmd_orderadm_h,

         but100.

*&---------------------------------------------------------------------*

*&              TYPE DECLERATION

*&---------------------------------------------------------------------*

TYPES : BEGIN OF ty_vend_det,

   partner TYPE bu_partner,                              "PARTNER NUMBER

   partner_guid TYPE bu_partner_guid,                    "PARTNER GUID

   END OF ty_vend_det.

TYPES: BEGIN OF ty_vend_org,

   partner_guid TYPE bu_partner_guid,                    "PARTNER GUID

   purchase_org TYPE bbp_proc_org,                       "PURCHASE ORGANIZATION

   END OF ty_vend_org.

TYPES: BEGIN OF ty_avl_sel,

   header TYPE crmt_object_guid,                         "AVL GUID

   category TYPE bbp_category_guid,                      "PRODUCT CATEGORY GUID

   category_id TYPE bbp_category_id,                     "PRODUCT CATEGORY ID

   vendor_id TYPE bu_partner,                            "PARTNER NUMBER

   END OF ty_avl_sel.

TYPES: BEGIN OF ty_avl_no,

   guid TYPE crmt_object_guid,                           "AVL GUID

   object_id TYPE crmt_object_id_db,                     "AVL NUMBER

   END OF ty_avl_no.

TYPES : BEGIN OF ty_final,                              "FINAL IT FOR DATA EXTRACTION

            partner TYPE bu_partner,

            partner_guid TYPE bu_partner_guid,

            purchase_org TYPE bbp_proc_org,

            header TYPE crmt_object_guid,

            category TYPE bbp_category_guid,

            category_id TYPE bbp_category_id,

*           vendor_id TYPE bu_partner,

            guid TYPE crmt_object_guid,

            object_id TYPE crmt_object_id_db,

          END OF ty_final.

TYPES: BEGIN OF ty_vend_validation,                     "TABLE TO VALIDATE WHETHER BP IS VENDOR OR NOT

   partner TYPE bu_partner,                              "PARTNER NUMBER

   rltyp TYPE bu_partnerrole,                            "BP ROLE

   END OF ty_vend_validation.

*&---------------------------------------------------------------------*

*&                  DATA DECLERATION

*&---------------------------------------------------------------------*

DATA: it_vend_det TYPE STANDARD TABLE OF ty_vend_det WITH HEADER LINE,

       it_vend_org TYPE STANDARD TABLE OF ty_vend_org WITH HEADER LINE,

       it_avl_sel TYPE STANDARD TABLE OF ty_avl_sel WITH HEADER LINE,

       it_avl_no TYPE STANDARD TABLE OF ty_avl_no WITH HEADER LINE,

       it_final TYPE STANDARD TABLE OF ty_final WITH HEADER LINE,

       it_vend_validation TYPE STANDARD TABLE OF ty_vend_validation WITH HEADER LINE.

DATA: wa_vend_det TYPE ty_vend_det,

       wa_vend_org TYPE ty_vend_org,

       wa_avl_sel TYPE ty_avl_sel,

       wa_avl_no TYPE ty_avl_no,

       wa_final TYPE ty_final,

       wa_vend_validation TYPE ty_vend_validation.

INITIALIZATION.

*&---------------------------------------------------------------------*

*&                  SELECTION SCREEN

*&---------------------------------------------------------------------*

SELECT-OPTIONS: s_vend FOR it_vend_det-partner NO-EXTENSION

                                                NO INTERVALS

                                                OBLIGATORY.

*                s_prod  FOR it_avl_sel-category_id NO-EXTENSION

*                                                       NO INTERVALS.

START-OF-SELECTION.

*BREAK-POINT.

*&---------------------------------------------------------------------*

*&                  DATA EXTRACTION

*&---------------------------------------------------------------------*

   SELECT partner

          rltyp

     FROM but100

     INTO TABLE it_vend_validation

     WHERE rltyp = 'BBP000'.

   SELECT partner

          partner_guid

     FROM but000

     INTO TABLE it_vend_det

     FOR ALL ENTRIES IN it_vend_validation

     WHERE partner = it_vend_validation-partner AND

     partner IN s_vend.

   SELECT partner_guid

          purchase_org

     FROM bbpm_but_frg0061

     INTO TABLE it_vend_org

     FOR ALL ENTRIES IN it_vend_det

     WHERE partner_guid = it_vend_det-partner_guid.

   SELECT header

          category

          category_id

          vendor_id

     FROM bbpd_pd_index

     INTO TABLE it_avl_sel

     FOR ALL ENTRIES IN it_vend_det

     WHERE vendor_id = it_vend_det-partner.

*       and

*      category_id in s_prod.

   SELECT guid

          object_id

     FROM crmd_orderadm_h

     INTO TABLE it_avl_no

     FOR ALL ENTRIES IN it_avl_sel

     WHERE guid = it_avl_sel-header.

*&---------------------------------------------------------------------*

*&                  DISPLAYING DATA

*&---------------------------------------------------------------------*

   LOOP AT it_vend_det INTO wa_vend_det.

     wa_final-partner = wa_vend_det-partner.

     wa_final-partner_guid = wa_vend_det-partner_guid.

     READ TABLE it_vend_org INTO wa_vend_org WITH KEY partner_guid = wa_vend_det-partner_guid.

     IF sy-subrc EQ 0.

       wa_final-purchase_org = wa_vend_org-purchase_org.

     ENDIF.

     READ TABLE it_avl_sel INTO wa_avl_sel WITH KEY vendor_id = wa_vend_det-partner.

     IF sy-subrc EQ 0.

       wa_final-header = wa_avl_sel-header.

       wa_final-category = wa_avl_sel-category.

       wa_final-category_id = wa_avl_sel-category_id.

*      wa_final-vendor_id = wa_avl_sel-vendor_id.

     ENDIF.

     READ TABLE it_avl_no INTO wa_avl_no WITH KEY guid = wa_avl_sel-header.

     IF sy-subrc EQ 0.

       wa_final-guid = wa_avl_no-guid.

       wa_final-object_id = wa_avl_no-object_id.

     ENDIF.

       APPEND wa_final TO it_final.

     CLEAR : wa_final.

    

BREAK-POINT.

   ENDLOOP.






Regards,


Sarnava

1 ACCEPTED SOLUTION
Read only

hiriyappa_myageri
Participant
0 Likes
962

Hi sarnava ,

As you declared these two are structures ty_vend_org and ty_avl_se.

and it_vend_org and it_avl_sel internal tables .



1.In debugger mode just check each select query and body of internals tables .

2.You are using for all entries so that depending on previous intern able records it will selects the records.

3.inside the loop you are using the read table statement with where clause as partner.

4.May be your internal table having  same partners .


Regards,

Hiriyappa



6 REPLIES 6
Read only

Former Member
0 Likes
962

you have a breakpoint there, can you use it?

Read only

0 Likes
962

Hello Jozef,

I am new to Abap development and just exploring all the keywords.

Regards,

Sarnava

Read only

hiriyappa_myageri
Participant
0 Likes
963

Hi sarnava ,

As you declared these two are structures ty_vend_org and ty_avl_se.

and it_vend_org and it_avl_sel internal tables .



1.In debugger mode just check each select query and body of internals tables .

2.You are using for all entries so that depending on previous intern able records it will selects the records.

3.inside the loop you are using the read table statement with where clause as partner.

4.May be your internal table having  same partners .


Regards,

Hiriyappa



Read only

0 Likes
962

Hello hiriyappa,

Thanks for your reply. Yes i checked and each internal table is getting populated multiple times but in my final table it is fetching only single record.

Read only

0 Likes
962

Hi ,

Can u tell how many records this itab is having it_vend_det.

Regards,

Hiriyappa .

Read only

Former Member
0 Likes
962

Hi Sarnava,

Please remove the addition of WITH HEADER LINE in internal table declaration and then check.

For all entries can restrict your records so please check the data in the database whether there is only one entry that exist for the condition related to for all entry table of there are multiple entries present in the database.

Regards,

Sachin