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

Dump is occuring while executing the loop

Former Member
0 Likes
439

Hi Abapers,

I developed one report in FICO Module.

I have written loop but system is taking more amount of time on it.

this program executing in testing client but it is not executing in production.

system showing the dump .

the problem is system taking more amount of time for given loop.

it_vbrp: having 25623 records,

it_vbrk: 30000 records,

it_mara2: having 33258

plese give me the sollution.

below code.

LOOP AT it_vbrp into wa_vbrp.

READ TABLE IT_MARA2 INTO WA_MARA2 WITH KEY matnr = wa_vbrp-matnr BINARY SEARCH.

case WA_MARA2-ismconttype.

when '12'. "Check for Material Type City

READ TABLE it_vbrk INTO wa_vbrk WITH KEY vbeln = wa_vbrp-vbeln BINARY SEARCH.

case wa_vbrk-fkart. "Check for Billing Doc Type

when 'F2'. "Check for Invoice Type

"Check for Invoice

read table it_konv into wa_konv with key knumv = wa_vbrk-knumv kposn = wa_vbrp-posnr kschl = 'PJ01'. "Read for Cover Price

if sy-subrc = 0.

v_city_actual_cprice = v_city_actual_cprice + wa_konv-kwert.

endif.

CLEAR:wa_konv.

read table it_konv into wa_konv with key knumv = wa_vbrk-knumv kposn = wa_vbrp-posnr kschl = 'ZDIS'. "Read for Commission

if sy-subrc = 0.

v_city_actual_comm = v_city_actual_comm + wa_konv-kwert.

endif.

WHEN 'G2'. "Check for Billing Doc Type

v_city_actual_crnotes = v_city_actual_crnotes + wa_vbrp-netwr.

ENDCASE. "Check for Billing Doc Type

when '11'. "Check for Material Type DAK

READ TABLE it_vbrk INTO wa_vbrk WITH KEY vbeln = wa_vbrp-vbeln BINARY SEARCH.

case wa_vbrk-fkart. "Check for Doc Type

when 'F2'. "Check for Invoice Type

read table it_konv into wa_konv with key knumv = wa_vbrk-knumv kposn = wa_vbrp-posnr kschl = 'PJ01'. "Read for Cover Price

if sy-subrc = 0.

v_DAK_actual_cprice = v_DAK_actual_cprice + wa_konv-kwert.

endif.

CLEAR:wa_konv.

read table it_konv into wa_konv with key knumv = wa_vbrk-knumv kposn = wa_vbrp-posnr kschl = 'ZDIS'. "Read for Commission

if sy-subrc = 0.

v_DAK_actual_comm = v_DAK_actual_comm + wa_konv-kwert.

endif.

when 'G2'. "Check for Billing Doc Type

v_DAK_actual_crnotes = v_DAK_actual_crnotes + wa_vbrp-netwr.

endcase. "Check for Doc Type

endcase. "Check for Material Type

CLEAR: wa_vbrk,

wa_vbrp,

wa_konv,

wa_mara2.

ENDLOOP.[/code]

2 REPLIES 2
Read only

chaouki_akir
Contributor
0 Likes
401

Hello,

1/ how can you more entries in vbrk header (30000) than in vbrp (item) ?

2/you will find code below : per each vbeln, access vbrk one time

DATA : wlv_idx LIKE sy-tabix VALUE 1.
SORT it_vbrk BY vbeln.
SORT it_vbrp BY vbeln.
SORT IT_MARA2 BY matnr.
SORT it_konv BY knumv kposn kschl.
LOOP AT it_vbrk INTO wa_vbrk.
  LOOP AT it_vbrp into wa_vbrp FROM wlv_idx.
   IF  wa_vbrp-vbeln > wa_vbrk-vbeln.
       MOVE sy-tabix TO wlv_idx. EXIT.
   ELSE.
   IF  wa_vbrp-vbeln EQ wa_vbrk-vbeln.
       READ TABLE IT_MARA2 INTO WA_MARA2 WITH KEY matnr = wa_vbrp-matnr BINARY SEARCH.
       IF  s-subrc EQ 0.
         case WA_MARA2-ismconttype.
          when '12'. "Check for Material Type City
             case wa_vbrk-fkart. "Check for Billing Doc Type 
               when 'F2'. "Check for Invoice Type
                    read table it_konv into wa_konv with key knumv = wa_vbrk-knumv 
                                                             kposn = wa_vbrp-posnr 
                                                             kschl = 'PJ01'  BINARY SEARCH. 
                    if sy-subrc = 0.
                       v_city_actual_cprice = v_city_actual_cprice + wa_konv-kwert.
                    endif.
                    CLEAR:wa_konv.
                    read table it_konv into wa_konv with key knumv = wa_vbrk-knumv 
                                                             kposn = wa_vbrp-posnr 
                                                             kschl = 'ZDIS' BINARY SEARCH. 
                    if sy-subrc = 0.
                       v_city_actual_comm = v_city_actual_comm + wa_konv-kwert.
                    endif.
               WHEN 'G2'. "Check for Billing Doc Type
                         v_city_actual_crnotes = v_city_actual_crnotes + wa_vbrp-netwr.
             ENDCASE. "Check for Billing Doc Type
          when '11'. "Check for Material Type DAK
             case wa_vbrk-fkart. "Check for Doc Type
                     when 'F2'. "Check for Invoice Type
                         read table it_konv into wa_konv with key knumv = wa_vbrk-knumv 
                                                                  kposn = wa_vbrp-posnr 
                                                                  kschl = 'PJ01' BINARY SEARCH.
                         if sy-subrc = 0.
                             v_DAK_actual_cprice = v_DAK_actual_cprice + wa_konv-kwert.
                         endif.
                         CLEAR:wa_konv.
                         read table it_konv into wa_konv with key knumv = wa_vbrk-knumv 
                                                                  kposn = wa_vbrp-posnr 
                                                                  kschl = 'ZDIS' BINARY SEARCH. 
                         if sy-subrc = 0.
                            v_DAK_actual_comm = v_DAK_actual_comm + wa_konv-kwert.
                         endif.
                     when 'G2'. "Check for Billing Doc Type
                         v_DAK_actual_crnotes = v_DAK_actual_crnotes + wa_vbrp-netwr.
           endcase. "Check for Doc Type
     endcase. "Check for Material Type
*   CLEAR: wa_vbrk, wa_vbrp, wa_konv, wa_mara2.
   ENDIF. ENDIF.
  ENDLOOP.
ENDLOOP.

Read only

Former Member
0 Likes
401

Ask basis guy to do timeout settings (Parameter RPDISMAX from 600 to 1200 sec) so that you should be able to execute the program in foreground or else run ur code in background.

Thanks.. Kartavya .

Reward if helpful.