Report program Performance problem

Hi All,
   one object is taking 30hr for executing.some one develped this in 1998 but this time it is a big Performance problem.please some one helep what to do i am giving that code.
*--DOCUMENTATION--
Programe written by :  31.03.1998 .
Purpose : this programe updates the car status into the table zsdtab1
This programe is to be schedule in the backgroud periodically .
Querries can be fired on the table zsdtab1 to get the details of the
    Car .
This programe looks at the changes made in the material master from
last updated date and the new entries in material master and updates
the tables zsdtab1 .
Changes in the Sales Order are not taken into account .
To get a fresh data set the value of zupddate in table ZSTATUS as
01.01.1998 . All the data will be refreshed from that date .
Program Changed on 23/7/2001 after version upgrade 46b by jyoti
Addition of New tables for Ibase
tables used -
tables : mara ,                        " Material master
         ausp ,                        " Characteristics table .
         zstatus ,                     " Last updated status table .
         zsdtab1 ,    " Central database table to be maintained .
         vbap ,                        " Sales order header table .
         vbak ,                        " Sales order item table .
         kna1 ,                        " Customer master .
         vbrk ,
         vbrp ,
         bkpf ,
         bseg ,
         mseg ,
         mkpf ,
         vbpa ,
         vbfa ,
         t005t .                         " Country details tabe .
--NEW TABLES ADDEDFOR VERSION 4.6B--
tables :   ibsymbol ,ibin , ibinvalues .
data : vatinn like ibsymbol-atinn , vatwrt like ibsymbol-atwrt ,
       vatflv like ibsymbol-atflv .
*--types definition--
types : begin of mara_itab_type ,
           matnr like mara-matnr ,
           cuobf like mara-cuobf ,
        end of mara_itab_type ,
        begin of ausp_itab_type ,
           atinn like ausp-atinn ,
           atwrt like ausp-atwrt ,
           atflv like ausp-atflv ,
        end of ausp_itab_type .
data : mara_itab type mara_itab_type occurs 500 with header line ,
       zsdtab1_itab like zsdtab1 occurs 500 with header line ,
       ausp_itab type ausp_itab_type occurs 500 with header line ,
       last_date type d ,
       date type d .
data: length type i.
clear mara_itab . refresh mara_itab .
clear zsdtab1_itab . refresh zsdtab1_itab .
select single  zupddate into last_date from zstatus
       where programm = 'ZSDDET01' .
select matnr cuobf into (mara_itab-matnr , mara_itab-cuobf) from mara
      where mtart eq 'FERT' or mtart = 'ZCBU'.
    where MATNR IN MATERIA
     and ERSDA IN C_Date
     and MTART in M_TYP.
    append mara_itab .
endselect .
loop at mara_itab.
clear zsdtab1_itab .
zsdtab1_itab-commno = mara_itab-matnr .
   Get the detailed data into internal table ausp_itab .----------->>>
clear ausp_itab . refresh ausp_itab .
--change starts--
select atinn atwrt atflv into (ausp_itab-atinn , ausp_itab-atwrt ,
                           ausp_itab-atflv) from ausp
      where objek = mara_itab-matnr .
      append ausp_itab .
   endselect .
   clear ausp_itab .
select  atinn  atwrt atflv  into (ausp_itab-atinn , ausp_itab-atwrt ,
ausp_itab-atflv) from ibin as a inner join ibinvalues as b
                  on ain_recno = bin_recno
       inner join  ibsymbol as c
                  on bsymbol_id = csymbol_id
    where a~instance = mara_itab-cuobf  .
  append ausp_itab .
endselect .
----CHANGE ENDS HERE -
sort ausp_itab by atwrt.
loop at ausp_itab .
clear date .
case ausp_itab-atinn .
  when '0000000094' .
    zsdtab1_itab-model = ausp_itab-atwrt .  " model  .
  when '0000000101' .
    zsdtab1_itab-drive = ausp_itab-atwrt .  " drive
  when '0000000095' .
    zsdtab1_itab-converter = ausp_itab-atwrt . "converter
  when '0000000096' .
    zsdtab1_itab-transmssn = ausp_itab-atwrt . "transmission
  when '0000000097' .
    zsdtab1_itab-colour = ausp_itab-atwrt .    "colour
  when '0000000098' .
    zsdtab1_itab-ztrim = ausp_itab-atwrt .     "trim
  when '0000000103' .
*=========Sujit 14-Mar-2006
   IF AUSP_ITAB-ATWRT(3) EQ 'WDB' OR AUSP_ITAB-ATWRT(3) EQ 'WDD'
   OR AUSP_ITAB-ATWRT(3) EQ 'WDC' OR AUSP_ITAB-ATWRT(3) EQ 'KPD'.
       ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT+3(14).
   ELSE.
       ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT .     "chassis no
   ENDIF.
    zsdtab1_itab-chassis_no = ausp_itab-atwrt .     "chassis no
*=========14-Mar-2006
  when '0000000166' .
----25.05.04
  length = strlen( ausp_itab-atwrt ).
  if length < 15.                       "***aded by patil
   zsdtab1_itab-engine_no = ausp_itab-atwrt .     "ENGINE NO
  else.
zsdtab1_itab-engine_no = ausp_itab-atwrt+13(14)."Aded on 21.05.04 patil
  endif.
----25.05.04
  when '0000000104' .
    zsdtab1_itab-body_no = ausp_itab-atwrt .     "BODY NO
  when '0000000173' .                                          "21.06.98
    zsdtab1_itab-cockpit = ausp_itab-atwrt .     "COCKPIT NO . "21.06.98
  when '0000000102' .
    zsdtab1_itab-dest = ausp_itab-atwrt .     "destination
  when '0000000105' .
    zsdtab1_itab-airbag = ausp_itab-atwrt .     "AIRBAG
  when '0000000110' .
    zsdtab1_itab-trailer_no = ausp_itab-atwrt .     "TRAILER_NO
  when '0000000109' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-fininspdat = date .   "FIN INSP DATE
  when '0000000108' .
    zsdtab1_itab-entrydate = ausp_itab-atwrt .     "ENTRY DATE
  when '0000000163' .
    zsdtab1_itab-regist_no = ausp_itab-atwrt .     "REGIST_NO
  when '0000000164' .
    zsdtab1_itab-mech_key = ausp_itab-atwrt .     "MECH_KEY
  when '0000000165' .
    zsdtab1_itab-side_ab_rt = ausp_itab-atwrt .     "SIDE_AB_RT
  when '0000000171' .
    zsdtab1_itab-side_ab_lt = ausp_itab-atwrt .     "SIDE_AB_LT
  when '0000000167' .
    zsdtab1_itab-elect_key = ausp_itab-atwrt .     "ELECT_KEY
  when '0000000168' .
    zsdtab1_itab-head_lamp = ausp_itab-atwrt .     "HEAD_LAMP
  when '0000000169' .
    zsdtab1_itab-tail_lamp = ausp_itab-atwrt .     "TAIL_LAMP
  when '0000000170' .
    zsdtab1_itab-vac_pump = ausp_itab-atwrt .     "VAC_PUMP
  when '0000000172' .
    zsdtab1_itab-sd_ab_sn_l = ausp_itab-atwrt .     "SD_AB_SN_L
  when '0000000174' .
    zsdtab1_itab-sd_ab_sn_r = ausp_itab-atwrt .     "SD_AB_SN_R
  when '0000000175' .
    zsdtab1_itab-asrhydunit = ausp_itab-atwrt .     "ASRHYDUNIT
  when '0000000176' .
    zsdtab1_itab-gearboxno = ausp_itab-atwrt .     "GEARBOXNO
  when '0000000177' .
    zsdtab1_itab-battery = ausp_itab-atwrt .     "BATTERY
  when '0000000178' .
    zsdtab1_itab-tyretype = ausp_itab-atwrt .     "TYRETYPE
  when '0000000179' .
    zsdtab1_itab-tyremake = ausp_itab-atwrt .     "TYREMAKE
  when '0000000180' .
    zsdtab1_itab-tyresize = ausp_itab-atwrt .     "TYRESIZE
  when '0000000181' .
    zsdtab1_itab-rr_axle_no = ausp_itab-atwrt .     "RR_AXLE_NO
  when '0000000183' .
    zsdtab1_itab-ff_axl_nor = ausp_itab-atwrt .     "FF_AXLE_NO_rt
  when '0000000182' .
    zsdtab1_itab-ff_axl_nol = ausp_itab-atwrt .     "FF_AXLE_NO_lt
  when '0000000184' .
    zsdtab1_itab-drivairbag = ausp_itab-atwrt .     "DRIVAIRBAG
  when '0000000185' .
    zsdtab1_itab-st_box_no = ausp_itab-atwrt .     "ST_BOX_NO
  when '0000000186' .
    zsdtab1_itab-transport = ausp_itab-atwrt .     "TRANSPORT
  when '0000000106' .
    zsdtab1_itab-trackstage = ausp_itab-atwrt .  " tracking stage
  when '0000000111' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_1 = date .    " tracking date for 1.
  when '0000000112' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_5 = date .    " tracking date for 5.
  when '0000000113' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_10 = date .   "tracking date for 10
  when '0000000114' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_15 = date .   "tracking date for 15
  when '0000000115' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_20 = date .   " tracking date for 20
  when '0000000116' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_25 = date .   " tracking date for 25
  when '0000000117' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_30 = date .   "tracking date for 30
  when '0000000118' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_35 = date .   "tracking date for 35
  when '0000000119' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_40 = date .   " tracking date for 40
  when '0000000120' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_45 = date .   " tracking date for 45
  when '0000000121' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_50 = date .   "tracking date for 50
  when '0000000122' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_55 = date .   "tracking date for 55
  when '0000000123' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_60 = date .   " tracking date for 60
  when '0000000124' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_65 = date .   " tracking date for 65
  when '0000000125' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_70 = date .   "tracking date for 70
  when '0000000126' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_75 = date .   "tracking date for 75
  when '0000000127' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_78 = date .   " tracking date for 78
  when '0000000203' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_79 = date .   " tracking date for 79
  when '0000000128' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_80 = date .   " tracking date for 80
  when '0000000129' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_85 = date .   "tracking date for 85
  when '0000000130' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_90 = date .   "tracking date for 90
  when '0000000131' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dat_trk_95 = date .   "tracking date for 95
  when '0000000132' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dattrk_100 = date .   " tracking date for100
  when '0000000133' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dattrk_110 = date .   " tracking date for110
  when '0000000134' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dattrk_115 = date .   "tracking date for 115
  when '0000000135' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dattrk_120 = date .   "tracking date for 120
  when '0000000136' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-dattrk_105 = date .   "tracking date for 105
  when '0000000137' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_1 = date .     "plan trk date for 1
  when '0000000138' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_5 = date .     "plan trk date for 5
  when '0000000139' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_10 = date .    "plan trk date for 10
  when '0000000140' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_15 = date .    "plan trk date for 15
  when '0000000141' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_20 = date .    "plan trk date for 20
  when '0000000142' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_25 = date .    "plan trk date for 25
  when '0000000143' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_30 = date .    "plan trk date for 30
  when '0000000144' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_35 = date .    "plan trk date for 35
  when '0000000145' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_40 = date .    "plan trk date for 40
  when '0000000146' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_45 = date .    "plan trk date for 45
  when '0000000147' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_50 = date .    "plan trk date for 50
  when '0000000148' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_55 = date .    "plan trk date for 55
  when '0000000149' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_60 = date .    "plan trk date for 60
  when '0000000150' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_65 = date .    "plan trk date for 65
  when '0000000151' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_70 = date .    "plan trk date for 70
  when '0000000152' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_75 = date .    "plan trk date for 75
  when '0000000153' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_78 = date .    "plan trk date for 78
  when '0000000202' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_79 = date .    "plan trk date for 79
  when '0000000154' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_80 = date .    "plan trk date for 80
  when '0000000155' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_85 = date .    "plan trk date for 85
  when '0000000156' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_90 = date .    "plan trk date for 90
  when '0000000157' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_95 = date .    "plan trk date for 95
  when '0000000158' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_100 = date .   "plan trk date for 100
  when '0000000159' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_105 = date .   "plan trk date for 105
  when '0000000160' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_110 = date .   "plan trk date for 110
  when '0000000161' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_115 = date .   "plan trk date for 115
  when '0000000162' .
    perform date_convert using  ausp_itab-atflv changing date .
    zsdtab1_itab-pdt_tk_120 = date .   "plan trk date for 120
********Additional fields / 24.05.98**********************************
  when '0000000099' .
    case ausp_itab-atwrt .
      when '540' .
        zsdtab1_itab-roll_blind = 'X' .
      when '482' .
        zsdtab1_itab-ground_clr = 'X' .
      when '551' .
        zsdtab1_itab-anti_theft = 'X' .
      when '882' .
        zsdtab1_itab-anti_tow = 'X' .
      when '656' .
        zsdtab1_itab-alloy_whel = 'X' .
      when '265' .
        zsdtab1_itab-del_class = 'X' .
      when '280' .
        zsdtab1_itab-str_wheel = 'X' .
      when 'CDC' .
        zsdtab1_itab-cd_changer = 'X' .
      when '205' .
        zsdtab1_itab-manual_eng = 'X' .
      when '273' .
        zsdtab1_itab-conn_handy = 'X' .
      when '343' .
        zsdtab1_itab-aircleaner = 'X' .
      when '481' .
        zsdtab1_itab-metal_sump = 'X' .
      when '533' .
        zsdtab1_itab-speaker = 'X' .
      when '570' .
        zsdtab1_itab-arm_rest = 'X' .
      when '580' .
        zsdtab1_itab-aircond = 'X' .
      when '611' .
        zsdtab1_itab-exit_light = 'X' .
      when '613' .
        zsdtab1_itab-headlamp = 'X' .
      when '877' .
        zsdtab1_itab-readlamp = 'X' .
      when '808' .
        zsdtab1_itab-code_ckd = 'X' .
      when '708' .
        zsdtab1_itab-del_prt_lc = 'X' .
      when '593' .
        zsdtab1_itab-ins_glass = 'X' .
      when '955' .
        zsdtab1_itab-zelcl = 'Elegance' .
      when '593' .
        zsdtab1_itab-zelcl = 'Classic' .
    endcase .
endcase .
endloop .
*--Update the sales data .--
perform get_sales_order using mara_itab-matnr .
perform get_cartype using mara_itab-matnr .
append zsdtab1_itab .
endloop.
<<<
loop at zsdtab1_itab .
  if zsdtab1_itab-cartype <> 'W-203'
  or zsdtab1_itab-cartype <> 'W-210'
  or zsdtab1_itab-cartype <> 'W-211'.
      clear zsdtab1_itab-zelcl.
  endif.
SELECT SINGLE * FROM ZSDTAB1 WHERE COMMNO = MARA_ITAB-MATNR .
select single * from zsdtab1 where commno = zsdtab1_itab-commno.
if sy-subrc <> 0 .
    insert into zsdtab1 values zsdtab1_itab .
else .
    update zsdtab1 set :vbeln = zsdtab1_itab-vbeln
                   bill_doc = zsdtab1_itab-bill_doc
                   dest = zsdtab1_itab-dest
                   lgort = zsdtab1_itab-lgort
                   ship_tp = zsdtab1_itab-ship_tp
                   country = zsdtab1_itab-country
                   kunnr = zsdtab1_itab-kunnr
                   vkbur = zsdtab1_itab-vkbur
                   customer = zsdtab1_itab-customer
                   city   = zsdtab1_itab-city
                   region = zsdtab1_itab-region
                   model = zsdtab1_itab-model
                   drive = zsdtab1_itab-drive
                   converter = zsdtab1_itab-converter
                   transmssn = zsdtab1_itab-transmssn
                   colour = zsdtab1_itab-colour
                   ztrim = zsdtab1_itab-ztrim
                   commno = zsdtab1_itab-commno
                   trackstage = zsdtab1_itab-trackstage
                   chassis_no    =   zsdtab1_itab-chassis_no
                   engine_no     =   zsdtab1_itab-engine_no
                   body_no       =   zsdtab1_itab-body_no
                   cockpit       =   zsdtab1_itab-cockpit
                   airbag        =   zsdtab1_itab-airbag
                   trailer_no    =   zsdtab1_itab-trailer_no
                   fininspdat    =   zsdtab1_itab-fininspdat
                   entrydate     =   zsdtab1_itab-entrydate
                   regist_no     =   zsdtab1_itab-regist_no
                   mech_key      =   zsdtab1_itab-mech_key
                   side_ab_rt    =   zsdtab1_itab-side_ab_rt
                   side_ab_lt    =   zsdtab1_itab-side_ab_lt
                   elect_key     =   zsdtab1_itab-elect_key
                   head_lamp     =   zsdtab1_itab-head_lamp
                   tail_lamp     =   zsdtab1_itab-tail_lamp
                   vac_pump      =   zsdtab1_itab-vac_pump
                   sd_ab_sn_l    =   zsdtab1_itab-sd_ab_sn_l
                   sd_ab_sn_r    =   zsdtab1_itab-sd_ab_sn_r
                   asrhydunit    =   zsdtab1_itab-asrhydunit
                   gearboxno     =   zsdtab1_itab-gearboxno
                   battery       =   zsdtab1_itab-battery
                   tyretype      =   zsdtab1_itab-tyretype
                   tyremake      =   zsdtab1_itab-tyremake
                   tyresize      =   zsdtab1_itab-tyresize
                   rr_axle_no    =   zsdtab1_itab-rr_axle_no
                   ff_axl_nor    =   zsdtab1_itab-ff_axl_nor
                   ff_axl_nol    =   zsdtab1_itab-ff_axl_nol
                   drivairbag    =   zsdtab1_itab-drivairbag
                   st_box_no     =   zsdtab1_itab-st_box_no
                   transport     =   zsdtab1_itab-transport
OPTIONS-
                   roll_blind    = zsdtab1_itab-roll_blind
                   ground_clr    = zsdtab1_itab-ground_clr
                   anti_theft    = zsdtab1_itab-anti_theft
                   anti_tow      = zsdtab1_itab-anti_tow
                   alloy_whel    = zsdtab1_itab-alloy_whel
                   del_class     = zsdtab1_itab-del_class
                   str_wheel     = zsdtab1_itab-str_wheel
                   cd_changer    = zsdtab1_itab-cd_changer
                   manual_eng    = zsdtab1_itab-manual_eng
                   conn_handy    = zsdtab1_itab-conn_handy
                   aircleaner    = zsdtab1_itab-aircleaner
                   metal_sump    = zsdtab1_itab-metal_sump
                   speaker       = zsdtab1_itab-speaker
                   arm_rest      = zsdtab1_itab-arm_rest
                   aircond       = zsdtab1_itab-aircond
                   exit_light    = zsdtab1_itab-exit_light
                   headlamp      = zsdtab1_itab-headlamp
                   readlamp      = zsdtab1_itab-readlamp
                   code_ckd      = zsdtab1_itab-code_ckd
                   del_prt_lc    = zsdtab1_itab-del_prt_lc
                   ins_glass     = zsdtab1_itab-ins_glass
                   dat_trk_1 = zsdtab1_itab-dat_trk_1
                   dat_trk_5 = zsdtab1_itab-dat_trk_5
                   dat_trk_10 = zsdtab1_itab-dat_trk_10
                   dat_trk_15 = zsdtab1_itab-dat_trk_15
                   dat_trk_20 = zsdtab1_itab-dat_trk_20
                   dat_trk_25 = zsdtab1_itab-dat_trk_25
                   dat_trk_30 = zsdtab1_itab-dat_trk_30
                   dat_trk_35 = zsdtab1_itab-dat_trk_35
                   dat_trk_40 = zsdtab1_itab-dat_trk_40
                   dat_trk_45 = zsdtab1_itab-dat_trk_45
                   dat_trk_50 = zsdtab1_itab-dat_trk_50
                   dat_trk_55 = zsdtab1_itab-dat_trk_55
                   dat_trk_60 = zsdtab1_itab-dat_trk_60
                   dat_trk_65 = zsdtab1_itab-dat_trk_65
                   dat_trk_70 = zsdtab1_itab-dat_trk_70
                   dat_trk_75 = zsdtab1_itab-dat_trk_75
                   dat_trk_78 = zsdtab1_itab-dat_trk_78
                   dat_trk_79 = zsdtab1_itab-dat_trk_79
                   dat_trk_80 = zsdtab1_itab-dat_trk_80
                   dat_trk_85 = zsdtab1_itab-dat_trk_85
                   dat_trk_90 = zsdtab1_itab-dat_trk_90
                   dat_trk_95 = zsdtab1_itab-dat_trk_95
                   dattrk_100 = zsdtab1_itab-dattrk_100
                   dattrk_105 = zsdtab1_itab-dattrk_105
                   dattrk_110 = zsdtab1_itab-dattrk_110
                   dattrk_115 = zsdtab1_itab-dattrk_115
                   dattrk_120 = zsdtab1_itab-dattrk_120
                   pdt_tk_1 = zsdtab1_itab-pdt_tk_1
                   pdt_tk_5 = zsdtab1_itab-pdt_tk_5
                   pdt_tk_10 = zsdtab1_itab-pdt_tk_10
                   pdt_tk_15 = zsdtab1_itab-pdt_tk_15
                   pdt_tk_20 = zsdtab1_itab-pdt_tk_20
                   pdt_tk_25 = zsdtab1_itab-pdt_tk_25
                   pdt_tk_30 = zsdtab1_itab-pdt_tk_30
                   pdt_tk_35 = zsdtab1_itab-pdt_tk_35
                   pdt_tk_40 = zsdtab1_itab-pdt_tk_40
                   pdt_tk_45 = zsdtab1_itab-pdt_tk_45
                   pdt_tk_50 = zsdtab1_itab-pdt_tk_50
                   pdt_tk_55 = zsdtab1_itab-pdt_tk_55
                   pdt_tk_60 = zsdtab1_itab-pdt_tk_60
                   pdt_tk_65 = zsdtab1_itab-pdt_tk_65
                   pdt_tk_70 = zsdtab1_itab-pdt_tk_70
                   pdt_tk_75 = zsdtab1_itab-pdt_tk_75
                   pdt_tk_78 = zsdtab1_itab-pdt_tk_78
                   pdt_tk_79 = zsdtab1_itab-pdt_tk_79
                   pdt_tk_80 = zsdtab1_itab-pdt_tk_80
                   pdt_tk_85 = zsdtab1_itab-pdt_tk_85
                   pdt_tk_90 = zsdtab1_itab-pdt_tk_90
                   pdt_tk_95 = zsdtab1_itab-pdt_tk_95
                   pdt_tk_100 = zsdtab1_itab-pdt_tk_100
                   pdt_tk_105 = zsdtab1_itab-pdt_tk_105
                   pdt_tk_110 = zsdtab1_itab-pdt_tk_110
                   pdt_tk_115 = zsdtab1_itab-pdt_tk_115
                   pdt_tk_120 = zsdtab1_itab-pdt_tk_120
                   cartype = zsdtab1_itab-cartype
                   zelcl = zsdtab1_itab-zelcl
                   excise_no = zsdtab1_itab-excise_no
where commno = zsdtab1_itab-commno .
   Update table .---------<<<
endif .
endloop .
perform update_excise_date .
perform update_post_goods_issue_date .
perform update_time.
*///////////////////// end of programe /////////////////////////////////
Get sales data -
form get_sales_order using matnr .
  data : corr_vbeln like vbrk-vbeln .
ADDED BY ADITYA / 22.06.98 **************************************
perform get_order using matnr .
select single vbeln lgort into (zsdtab1_itab-vbeln , zsdtab1_itab-lgort)
            from vbap where matnr = matnr .   " C-22.06.98
              from vbap where vbeln = zsdtab1_itab-vbeln .
  if sy-subrc = 0 .
************Get the Excise No from Allocation Field*******************
    select single * from zsdtab1 where commno = matnr .
    if zsdtab1-excise_no =  '' .
      select * from vbrp where matnr = matnr .
        select single vbeln into corr_vbeln from vbrk where
        vbeln = vbrp-vbeln and vbtyp = 'M'.
        if sy-subrc eq 0.
          select single * from vbrk where vbtyp = 'N'
          and sfakn = corr_vbeln.      "cancelled doc.
          if sy-subrc ne 0.
            select single * from vbrk where vbeln = corr_vbeln.
            if sy-subrc eq 0.
              data : year(4) .
              move sy-datum+0(4) to year .
  select single * from bkpf where awtyp = 'VBRK' and awkey = vbrk-vbeln
                                  and  bukrs = 'MBIL' and gjahr = year .
              if sy-subrc = 0 .
  select single * from bseg where bukrs = 'MBIL' and belnr = bkpf-belnr
                                   and gjahr = year and koart = 'D' and
                                                           shkzg = 'S' .
                zsdtab1_itab-excise_no = bseg-zuonr .
              endif .
            endif.
          endif.
        endif.
      endselect.
    endif .
    select single kunnr vkbur into (zsdtab1_itab-kunnr ,
            zsdtab1_itab-vkbur) from vbak
            where vbeln = zsdtab1_itab-vbeln .
    if sy-subrc = 0 .
      select single name1 ort01 regio into (zsdtab1_itab-customer ,
         zsdtab1_itab-city , zsdtab1_itab-region) from kna1
         where kunnr = zsdtab1_itab-kunnr .
    endif.
  Get Ship to Party **************************************************
    select single * from vbpa where vbeln = zsdtab1_itab-vbeln and
                    parvw = 'WE' .
    if sy-subrc = 0 .
        zsdtab1_itab-ship_tp = vbpa-kunnr .
  Get Destination Country of Ship to Party .************
        select single * from kna1 where kunnr = vbpa-kunnr .
        if sy-subrc = 0 .
           select single * from t005t where land1 = kna1-land1
                                   and spras = 'E' .
           if sy-subrc = 0 .
               zsdtab1_itab-country = t005t-landx .
           endif .
        endif .
    endif .
  endif .
endform.                               " GET_SALES
form update_time.
  update zstatus set zupddate = sy-datum
                     uzeit = sy-uzeit
  where programm = 'ZSDDET01' .
endform.                               " UPDATE_TIME
*&      Form  DATE_CONVERT
form date_convert using atflv changing date .
  data : dt(8) , dat type i .
  dat = atflv .
  dt = dat .
  date = dt .
endform.                               " DATE_CONVERT
*&      Form  UPDATE_POST_GOODS_ISSUE_DATE
form update_post_goods_issue_date .
  types : begin of itab1_type ,
            mblnr like mseg-mblnr ,
            budat like mkpf-budat ,
          end of itab1_type .
  data : itab1 type itab1_type occurs 10 with header line .
  loop at mara_itab .
    select single * from zsdtab1 where commno = mara_itab-matnr .
    if sy-subrc =  0  and zsdtab1-postdate =  '00000000' .
      refresh itab1 . clear itab1 .
    select * from mseg where matnr = mara_itab-matnr and bwart = '601' .
        itab1-mblnr = mseg-mblnr .
        append itab1 .
      endselect .
      loop at itab1 .
        select single * from mkpf where mblnr = itab1-mblnr .
        if sy-subrc = 0 .
          itab1-budat = mkpf-budat .
          modify itab1 .
        endif .
      endloop .
      sort itab1 by budat .
      read table itab1 index 1 .
      if sy-subrc = 0 .
        update zsdtab1 set postdate = itab1-budat
                     where commno = mara_itab-matnr .
      endif .
    endif .
  endloop .
endform.                               " UPDATE_POST_GOODS_ISSUE_DATE
*&      Form  UPDATE_EXCISE_DATE
form update_excise_date.
  types : begin of itab2_type ,
            mblnr like mseg-mblnr ,
            budat like mkpf-budat ,
          end of itab2_type .
  data : itab2 type itab2_type occurs 10 with header line .
  loop at mara_itab .
    select single * from zsdtab1 where commno = mara_itab-matnr .
    if sy-subrc =  0  and zsdtab1-excise_dat  = '00000000' .
      refresh itab2 . clear itab2 .
      select * from mseg where matnr = mara_itab-matnr and
                              (  bwart = '601' or  bwart = '311' ) .
        itab2-mblnr = mseg-mblnr .
        append itab2 .
      endselect .
      loop at itab2 .
        select single * from mkpf where mblnr = itab2-mblnr .
        if sy-subrc = 0 .
          itab2-budat = mkpf-budat .
          modify itab2 .
        endif .
      endloop .
      sort itab2 by budat .
      read table itab2 index 1 .
      if sy-subrc = 0 .
        update zsdtab1 set excise_dat = itab2-budat
                     where commno = mara_itab-matnr .
      endif .
    endif .
  endloop .
endform.                               " UPDATE_EXCISE_DATE
form get_order using matnr .
types :  begin of itab_type ,
            vbeln like vbap-vbeln ,
            posnr like vbap-posnr ,
         end of itab_type .
data : itab type itab_type occurs 10 with header line .
refresh itab . clear itab .
select * from vbap where matnr = mara_itab-matnr .
   itab-vbeln = vbap-vbeln .
   itab-posnr = vbap-posnr .
   append itab .
endselect .
loop at itab .
  select single * from vbak where vbeln = itab-vbeln .
  if vbak-vbtyp <> 'C' .
    delete itab .
  endif .
endloop .
loop at itab .
select single * from vbfa where vbelv = itab-vbeln and
         posnv = itab-posnr and vbtyp_n = 'H' .
if sy-subrc = 0 .
  delete itab .
endif .
endloop .
clear :  zsdtab1_itab-vbeln ,  zsdtab1_itab-bill_doc .
loop at itab .
  zsdtab1_itab-vbeln = itab-vbeln .
  select single * from vbfa where vbelv = itab-vbeln and
         posnv = itab-posnr and vbtyp_n = 'M' .
if sy-subrc = 0 .
  zsdtab1_itab-bill_doc = vbfa-vbeln .
endif .
endloop .
endform .
*&      Form  GET_CARTYPE
form get_cartype using matnr .
select single * from mara where matnr = matnr .
zsdtab1_itab-cartype = mara-satnr .
endform.                    " GET_CARTYPE

Hi,
I have analysed your program and i would like to share following points for better performance of this report :
(a)  Use the field Names instead of Select * or Select Single * as if you use the field names it will consume less amount of resources inside the loop as well as you have lot many Select Single * and u r using very big tables like VBAP and many more.
(b) Trace on ST05 which particular query is mostly effecting your system or use ST12 in current mode to trace for less inputs which run the report for 20-30 min so that we get an idea which queries are effecting the system and taking a lot of time.
(c) In Case of internal tables sort the data properly and use binary search for getting the data.
I think this will help.
Thanks and Regards,
Harsh

Similar Messages

  • Report painter performance problem...

    I have a client which runs a report group consists of 14 reports... When we  run this program... It takes about 20 minutes to get results... I was assigned to optimize this report...
    This is what I've done so far
    (this is a SAP generated program)...
    1. I've checked the tables that the program are using... (a customized table with more than 20,000 entries and many others)
    2. I've created secondary indexes  to the main customized table with (20,000) entries - It improves the performance a bit(results about 18 minutes)...
    3. I divided the report group by 4... 3 reports each report group... It greatly improves the performance... (but this is not what the client wants)...
    4. I've read an article about report group performance that it is a bug. 
    (sap support recognized the fact that we are dealing with a bug in the sap standard functionality)
    http://it.toolbox.com/blogs/sap-on-db2/sap-report-painter-performance-problem-26000
    Anyone have the same problem as mine?
    Edited by: christopher mancuyas on Sep 8, 2008 9:32 AM
    Edited by: christopher mancuyas on Sep 9, 2008 5:39 AM

    Report painter/Writer always creates a prerformance issue.i never preffred them since i have a option with Zreport
    now you can do only one thing put more checks on selection-screen for filtering the data.i think thats the only way.
    Amit.

  • Crystal Reports XIR2 performance problem with Sybase IQ 15.2

    Dear all,
    we are facing a performances pb with Crystal reports and Sybase IQ 15.2, Does anyone have a similar issues and have a solution as ( design , or sybase IQ configuration...)
    regards,
    Eric

    Wow, not so much info please... for starters:
    Is this in the designer or in an app?
    Depending on the above, the following may, or may not apply:
    What are you comparing the performance to?
    What is the exact version of CR or what CR Service Packs have you applied?
    If in an app , what your development language?
    What CR SDK are you using?
    Web or Win app?
    How are you connecting to the database (OLE DB, ODBC, etc .)?
    Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup
    Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports]

  • How should I report forum performance issues?

    The forums rely heavily on the caching features of browsers to improve the speed of page rendering. Performance of these forums should greatly improve after a few pages because more and more of the images, css and javascript is cached in the browser. As a consequence, when reporting forums performance issues the report should include some information on the state of the browser cache to determine whether the issue is a browser issue or a server issue. Such detailed information is generally not available from just watching the browser screen, but needs to come from specialized tools such as performance monitor plugins and recording proxies.
    The preferred report method for performance issues is to use the speed reporting features build into or available as a plugin for a browser for both the page you want to report a problem with and several refence pages in the site. Detailed instructions are listed below separated out for different browsers. If possible, please use Firefox for submitting the report because it provides an export format that can be read back electronically.
    Known performance issues
    The performance issues with any screen with a Rich Text Editor, such as the Reply window and the compose Private Message window have been acknowleged and improvements are being implemented.
    Mozilla Firefox (preferred)
    Warning: it is currently not recommended to generate a speed report when logged in. The speed report has enough detail for somebody else to hijack your session and impersonate you on the forums. If you really must report while logged in, make sure you log out your browser after generating the speed report and wait at least 4 hours before posting.
    Install the Firebug plugin
    Install the NetExport 0.6 extension for Firebug
    Enable all Firebug panels
    Switch to the "Net" panel in Firebug
    Click on this link
    Export the data from the Firebug Net panel
    Click on this link
    Export the data from the Firebug Net panel
    Browse to the page where you are experiencing the performance problem.
    Export the data from the Firebug Net panel
    Click on this link
    Export the data from the Firebug Net panel
    Click on this link
    Export the data from the Firebug Net panel
    Browse to the page where you are experiencing the performance problem.
    Export the data from the Firebug Net panel
    When you report a performance problem please attach the 6 exports from the Firebug Net panel and an explanation of how you are experiencing the issues (for instance how much slower it is then normal) and include a description of your internet connection (dial-up, dsl, cable etc.) and the country from where you are connecting. If you have non-standard tweaks to your Firefox configuration (such as pipelining enabled) or are running any plugins please include that information in your report as well.
    Google Chrome
    Open the Developer Tools (Ctrl-Shift-J)
    Navigate to the resources tab
    Enable resource tracking.
    Click on this link
    Export the resource loading data.
    Reset the data by disabling and enabling resource tracking
    Click on this link
    Export the data
    Reset the data by disabling and enabling resource tracking
    Navigate to the page where you experience the performance problem
    Export the data
    Reset the data by disabling and enabling resource tracking
    Click on this link
    Export the data
    Reset the data by disabling and enabling resource tracking
    Click on this link
    Export the data
    Reset the data by disabling and enabling resource tracking
    Navigate to the page where you experience the performance problem
    Export the data
    Since Google Chrome does not have an export format for the Resource Tracking information best current practice is to take a screenshot and note the hover details for any resource with a tail that is longer then 25% of the total load time. When you report a performance problem please attach the screenshots and an explanation of how you are experiencing the issues (for instance how much slower it is then normal)  and include a description of your internet connection (dial-up, dsl, cable etc.) and the country from where you are connecting.
    Apple Safari
    The Apple Safari Web Inspector has a Resources panel similar to the Resources panel in the Google Chrome developer tools.To get there, follow these steps:
    Show the menu bar.
    Go to preferences
    Go to the Advanced Tab
    Check “Show  Develop menu in menu bar”.
    From the Develop menu select “Show Web  Inspector”. 
    Collecting the performance information and exporting works exactly the same as in Google Chrome. Please refer to the instructions for Google Chrome.
    Microsoft Internet Explorer
    IE does not have native features to analyze web traffic. No plugins have been found that produce the required information (please let us know if we missed any). For now, please reproduce the issue with Firefox, Chrome or Safari.
    Please note that due to the reliance on Javascript for the interactive effects the performance of these forums will be much better on MS IE 8 then on previous versions of MS IE.

    Hi
    It works, check once again...
    regards
    Swami

  • Performance problem in Zstick report...

    Hi Experts,
    I am facing performance problem in Custoom Stock report of Material Management.
    In this report i am fetching all the materials with its batches to get the desired output, at a time this report executes 36,000 plus unique combination of material and batch.
    This report takes around 30 mins to execute. And this report is to be viewed regularly in every 2 hours.
    To read the batch characteristics value I am using FM -> '/SAPMP/CE1_BATCH_GET_DETAIL'
    Is there any way out to increase the performance of this report, the output of the report is in ALV.
    May i have any refresh button in the report so that data may get refreshed automatically without executing it again. or is there any cache memory concept.
    Note: I have declared all the itabs with type sorted, all the select queries are fetched with key and index.
    Thanks
    Rohit Gharwar

    Hello,
    SE30 is old. Switch on trace on ST12 while running this progarm and identify where exactly most of the time is being spent. If you see high CPU time this problem with the ABAP code. You can exactly figure out the program/function module from ST12 trace where exactly time is being spent. If you see high database time in ST12, problem is with database related issue. So basically you have to analyze sql statement from performance traces in ST12. These could resolve your issue.
    Yours Sincerely
    Dileep

  • Performance of Big Report Programs

    Hi SAP Experts,
    I want to know whether we can put the trace on the Report Programs which are taking on almost around 10 hours to execute or how can we put a trace on background jobs.
    Thanks and Regards,
    Harsh Goel

    Hi Harsh,
    The problem with the report will be mostly due to the select queries.
    So better do one thing, execute your program in debug mode, keep a break point before the select query, activate the trace in ST05 transaction and after executing the select query deactivate the trace
    Now look in display trace for the time it takes for the query.
    you can follow the same method for each query and check which query takes a long time and rectify that.
    To reduce ABAP/4 program runtime, always follow the ABAP/4 program optimization techniques given below:
    1. Avoid 'SELECT *'. Instead use select with field names i.e. SELECT f1 f2 f3 and so on.
    2. Use table (primary) keys (as far as possible) in the WHERE clause of the select statements. Else, check for secondary indexes.
    3. Avoid nested selects or nested loops.
    4. Use binary search wherever possible.
    5. Avoid use of joins in the select queries.
    5. You can evaluate the performance using GET RUN TIME command for small pieces of program. Try using this statement for SELECT queries to know how much time your SELECT query takes to execute.
    Example
    DATA: gv_runtime1       TYPE i,
          gv_runtime2       TYPE i,
          gv_final          TYPE i.
    GET RUN TIME FIELD gv_runtime1.
    SELECTu2026u2026
    GET RUN TIME FIELD gv_runtime2.
    gv_final = gv_runtime2 - gv_runtime1.
    WRITE: 'Execution time=', gv_final.
    If you still have any doubts please let me know.
    Regards,
    Shobana.K
    Edited by: Shobana k on Sep 18, 2008 8:27 AM

  • Problem WIth Variant in a report program

    I have a z report program with couple of variants , the problem is the varaints display onlt name of the variant and description when the varaint button is pressed.
    The changed by , date etc details are not getting displayed.
    Thanks
    Arun

    Hi Arun,
    You will not get those data directly from the program execution screen. If you want to get those details, please check table VARID for that variant or program.
    Regards,
    Sourav

  • SQL report performance problem

    I have a SQL classic report in Apex 4.0.2 and database 11.2.0.2.0 with a performance problem.
    The report is based on a PL/SQL function returning a query. The query is based on a view and pl/sql functions. The Apex parsing schema has select grant on the view only, not the underlying objects.
    The generated query runs in 1-2 sec in sqlplus (logged in as the Apex parsing schema user), but takes many minutes in Apex. I have found, by monitoring the database sessions via TOAD, that the explain plan in the Apex and sqlplus sessions are very different.
    The summary:
    In sqlplus SELECT STATEMENT ALL_ROWS Cost: 3,695                                                                            
    In Apex SELECT STATEMENT ALL_ROWS Cost: 3,108,551                                                        
    What could be the cause of this?
    I found a blog and Metalink note about different explain plans for different users. They suggested to set optimizer_secure_view_merging='FALSE', but that didn't help.

    Hmmm, it runs fast again in SQL Workshop. I didn't expect that, because both the application and SQL Workshop use SYS.DBMS_SYS_SQL to parse the query.
    Only the explain plan doesn't show anything.
    To add: I changed the report source to the query the pl/sql function would generate, so the selects are the same in SQL Workshop and in the application. Still in the application it's horribly slow.
    So, Apex does do something different in the application compared to SQL Workshop.
    Edited by: InoL on Aug 5, 2011 4:50 PM

  • Interactive report performance problem over database link - Oracle Gateway

    Hello all;
    This is regarding a thread Interactive report performance problem over database link that was posted by Samo.
    The issue that I am facing is when I use Oracle function like (apex_item.check_box) the query slow down by 45 seconds.
    query like this: (due to sensitivity issue, I can not disclose real table name)
    SELECT apex_item.checkbox(1,b.col3)
    , a.col1
    , a.col2
    FROM table_one a
    , table_two b
    WHERE a.col3 = 12345
    AND a.col4 = 100
    AND b.col5 = a.col5
    table_one and table_two are remote tables (non-oracle) which are connected using Oracle Gateway.
    Now if I run above queries without apex_item.checkbox function the query return or response is less than a second but if I have apex_item.checkbox then the query run more than 30 seconds. I have resolved the issues by creating a collection but it’s not a good practice.
    I would like to get ideas from people how to resolve or speed-up the query?
    Any idea how to use sub-factoring for the above scenario? Or others method (creating view or materialized view are not an option).
    Thank you.
    Shaun S.

    Hi Shaun
    Okay, I have a million questions (could you tell me if both tables are from the same remote source, it looks like they're possibly not?), but let's just try some things first.
    By now you should understand the idea of what I termed 'sub-factoring' in a previous post. This is to do with using the WITH blah AS (SELECT... syntax. Now in most circumstances this 'materialises' the results of the inner select statement. This means that we 'get' the results then do something with them afterwards. It's a handy trick when dealing with remote sites as sometimes you want the remote database to do the work. The reason that I ask you to use the MATERIALIZE hint for testing is just to force this, in 99.99% of cases this can be removed later. Using the WITH statement is also handled differently to inline view like SELECT * FROM (SELECT... but the same result can be mimicked with a NO_MERGE hint.
    Looking at your case I would be interested to see what the explain plan and results would be for something like the following two statements (sorry - you're going have to check them, it's late!)
    WITH a AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_one),
    b AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_two),
    sourceqry AS
    (SELECT  b.col3 x
           , a.col1 y
           , a.col2 z
    FROM table_one a
        , table_two b
    WHERE a.col3 = 12345
    AND   a.col4 = 100
    AND   b.col5 = a.col5)
    SELECT apex_item.checkbox(1,x), y , z
    FROM sourceqry
    WITH a AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_one),
    b AS
    (SELECT /*+ MATERIALIZE */ *
    FROM table_two)
    SELECT  apex_item.checkbox(1,x), y , z
    FROM table_one a
        , table_two b
    WHERE a.col3 = 12345
    AND   a.col4 = 100
    AND   b.col5 = a.col5If the remote tables are at the same site, then you should have the same results. If they aren't you should get the same results but different to the original query.
    We aren't being told the real cardinality of the inners select here so the explain plan is distorted (this is normal for queries on remote and especially non-oracle sites). This hinders tuning normally but I don't think this is your problem at all. How many distinct values do you normally get of the column aliased 'x' and how many rows are normally returned in total? Also how are you testing response times, in APEX, SQL Developer, Toad SQLplus etc?
    Sorry for all the questions but it helps to answer the question, if I can.
    Cheers
    Ben
    http://www.munkyben.wordpress.com
    Don't forget to mark replies helpful or correct ;)

  • Performance problems with abap report SAPLPRGN_STRUCTURE during users login

    Hello,
    after patchimport of SAP BASIS level 21 and SAPABAP level 21 our SAP Production System (ECC6-UNICODE KERNEL 240) denote a performance problems. A lot of ours users during logon phase must wait until 10-12 minutes before that the navigation menu is displayed. The problem is generated by the slow performance of the standard SAP REPORT SAPLPRGN_STRUCTURE that require a lot time.  Any idea?
    Thanks

    Hi Pat,
    I would stop SAP and use DLTR3PKG, If this doesn't help, you need to investigate, if it is a CPU or DB-Time issue in ST03. Then you have to handle accordingly ...
    Regards
    Volker Gueldenpfennig, consolut international ag
    http://www.consolut.net - http://www.4soi.de - http://www.easymarketplace.de

  • There is any Performance problem with Creation of many Y or Z  Programs.

    HI,
    There is any Performance problem with Creation of many Y or Z  Programs. plz give clarity regarding this to me......
    regards
    ganesh

    Ganesh,
    Can you please mention the context and the purpose of creating these custom program.  And application are you referring to?
    Regards,
    Rohit

  • Problem while fetching more records in SAP ABAP report program

    Hello Frinds,
    I have SAP ABAP report program which fetches data from usr02 table
    Now, program is working fine with less number of records, bot in production there are more than 200000 records and either report gets timed out or there is run time error like buffer area not available.
    Below is the fetch statement
    SELECT bname FROM usr02 INTO TABLE lt_user
    So, do I need to take records in small chunks, I do not think it is needed as I have worked on number of othere databases where there are number of records in single fetch statement and database itself take care of this.
    Please provide me some approach to resolve this problem.

    This will be very difficult for you.....
    Since you are getting a time out error....it looks like, you are runnning this report in foreground....................
    Try running it in background it will work...
    ELSE....you have to fetch in small chunks....but the question is how will you do it. Since the USR02 only has BNAME as primary key...
    Either put the BNAME as part of selection screen and fetch the data.....it will solve your problem....
    Only fetch for those BNAME which is entered in the selection screen...
    Hope it helps!

  • Performance problem with Orcacle / Crystal reports 8.5 / ASP

    Hi,
    I have a performance problem with reports running crystal reports 8.5 with oracle databases.
    Fetching data appears to be slow. Oracle trace reports (tkprof) shows that fetchsize=1.
    Fetchsize in Oracle ODBC is 15 (default).
    How can I update te fetchsize in crystal reports?
    I would appreciate any help.

    CR XI R2 is also still available for purchase. This is the last version of CR to use the RDC. Contact sales at 866-681-3435.
    Make sure the installed versin is 11.5.12.1838 - if it is not, apply SP6:
    https://smpdl.sap-ag.de/~sapidp/012002523100015859952009E/crxir2win_sp6.exe
    MSM:
    https://smpdl.sap-ag.de/~sapidp/012002523100000634032010E/crxir2sp6_rdc_mm.zip
    - Ludek
    Edited by: Ludek Uher on Jan 4, 2011 10:05 AM

  • The Problem is about Standard Back Button Function in Report Program

    The Problem is about Standard Back Button Function in the Report Program.
           In the Report,First call screen Then Using "write" output some information,That is ok. but In the GUI When I press back button that is standard button,it exit screen to program.
           My question is how can i do When i press back button,the screen can be back forward first screen instand of exit screen to program.  Thanks .

    This problem is solution.I call screen using T-code and submit report In PAI,at last return to PAI.That is OK.

  • The Problem is about Standard Back Button Function in the Report Program.

    The Problem is about Standard Back Button Function in the Report Program.
    In the Report,First call screen Then Using "write" output some information,That is ok. but In the GUI When I press back button that is standard button,it exit screen to program.
    My question is how can i do When i press back button,the screen can be back forward first screen instand of exit screen to program. Thanks .

    Hi,
    You can define your own PF-STATUS and in that assign the function code for BACK button anything except 'BACK'.
    The code would somewhat look like this:
    SET PF-STATUS 'TEST'.
    write : itab-col1,
               itab-col2.
    in the PF-STATUS 'TEST', assign the function code to BACK button as 'BCK'.
    Now in your program you can use the event AT USER-COMMAND.
    In this you can handle the functionality of BACK button.
    Hope this helps.
    Regards,
    Himanshu

Maybe you are looking for