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

time out error

Former Member
0 Likes
765

hi friends ,

i am trying to make a report on daily plant performance but unfortunately i got an run time error (time out) it stuck on MSEG table and take very long time to process . what should i use to remove the error.

SELECT MATKL SPART MATNR MTART NTGEW FROM MARA

INTO TABLE T_MARA WHERE MTART = 'FERT'

AND SPART = DIVISION.

SELECT MATNR FROM MARA

INTO TABLE T_MAR WHERE MTART = 'FERT'

AND SPART = DIVISION.

loop at t_mar.

SELECT AMATNR AWERKS AMENGE ABWART AMBLNR BMBLNR B~BUDAT

FROM MSEG AS A INNER JOIN MKPF AS B ON AMBLNR = BMBLNR

INTO CORRESPONDING FIELDS OF TABLE t_mseg

WHERE MATNR = W_MARA-MATNR AND ( BWART = '101' OR BWART = '102')

AND BUDAT BETWEEN DATE AND DATE1.

endloop.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
695

Hi,

Bhupi Kaler wrote:

hi friends ,
i am trying to make a report on daily plant performance but unfortunately i got an run time error (time out) it stuck on MSEG table and take very long time to process . what should i use to remove the error.

SELECT MATKL SPART MATNR MTART NTGEW FROM MARA
INTO TABLE T_MARA WHERE MTART = 'FERT'
AND SPART = DIVISION.

SELECT MATNR FROM MARA
INTO TABLE T_MAR WHERE MTART = 'FERT'
AND SPART = DIVISION.

loop at t_mar.
SELECT A~MATNR A~WERKS A~MENGE A~BWART A~MBLNR B~MBLNR B~BUDAT
FROM MSEG AS A INNER JOIN MKPF AS B ON A~MBLNR = B~MBLNR
INTO CORRESPONDING FIELDS OF TABLE t_mseg
WHERE MATNR = W_MARA-MATNR AND ( BWART = '101' OR BWART = '102')
AND BUDAT BETWEEN DATE AND DATE1.
endloop.

Bhupi,

Never put select statement in loop....endloop.Why do you want to select data from mara 2 times.Rather do like this:

SELECT MATKL SPART MATNR MTART NTGEW FROM MARA
INTO TABLE T_MARA WHERE MTART = 'FERT'
AND SPART = DIVISION.


if not t_mara[] is initial.
SELECT A~MATNR A~WERKS A~MENGE A~BWART A~MBLNR B~MBLNR B~BUDAT
FROM MSEG AS A INNER JOIN MKPF AS B ON A~MBLNR = B~MBLNR
INTO CORRESPONDING FIELDS OF TABLE t_mseg
for all entries in t_mara
WHERE MATNR = T_MARA-MATNR AND ( BWART = '101' OR BWART = '102')
AND BUDAT BETWEEN DATE AND DATE1.
Endif.

4 REPLIES 4
Read only

Former Member
0 Likes
696

Hi,

Bhupi Kaler wrote:

hi friends ,
i am trying to make a report on daily plant performance but unfortunately i got an run time error (time out) it stuck on MSEG table and take very long time to process . what should i use to remove the error.

SELECT MATKL SPART MATNR MTART NTGEW FROM MARA
INTO TABLE T_MARA WHERE MTART = 'FERT'
AND SPART = DIVISION.

SELECT MATNR FROM MARA
INTO TABLE T_MAR WHERE MTART = 'FERT'
AND SPART = DIVISION.

loop at t_mar.
SELECT A~MATNR A~WERKS A~MENGE A~BWART A~MBLNR B~MBLNR B~BUDAT
FROM MSEG AS A INNER JOIN MKPF AS B ON A~MBLNR = B~MBLNR
INTO CORRESPONDING FIELDS OF TABLE t_mseg
WHERE MATNR = W_MARA-MATNR AND ( BWART = '101' OR BWART = '102')
AND BUDAT BETWEEN DATE AND DATE1.
endloop.

Bhupi,

Never put select statement in loop....endloop.Why do you want to select data from mara 2 times.Rather do like this:

SELECT MATKL SPART MATNR MTART NTGEW FROM MARA
INTO TABLE T_MARA WHERE MTART = 'FERT'
AND SPART = DIVISION.


if not t_mara[] is initial.
SELECT A~MATNR A~WERKS A~MENGE A~BWART A~MBLNR B~MBLNR B~BUDAT
FROM MSEG AS A INNER JOIN MKPF AS B ON A~MBLNR = B~MBLNR
INTO CORRESPONDING FIELDS OF TABLE t_mseg
for all entries in t_mara
WHERE MATNR = T_MARA-MATNR AND ( BWART = '101' OR BWART = '102')
AND BUDAT BETWEEN DATE AND DATE1.
Endif.

Read only

Former Member
0 Likes
695

hi,

Use for all entries statement instead of loop endloop and use ranges ...


ranges : r_bwart for mseg-bwart,
            r_budat for bseg-budat.

initialization.
r_bwart-low = '101'.
r_bwart-sign = 'I'.
r_bwart-option = 'EQ'.
append r_bwart.

r_bwart-low = '102'.
r_bwart-sign = 'I'.
r_bwart-option = 'EQ'.
append r_bwart.

r_budat-low = DATE .
r_budat-high =   DATE1.
r_bwart-sign = 'I'.
r_bwart-option = 'BT'.
append r_budat. 


if not t_mara[] is initial.
SELECT A~MATNR A~WERKS A~MENGE A~BWART A~MBLNR B~MBLNR B~BUDAT
FROM MSEG AS A INNER JOIN MKPF AS B ON A~MBLNR = B~MBLNR
INTO CORRESPONDING FIELDS OF TABLE t_mseg
for all entries in t_mara
WHERE MATNR = t_mara-MATNR AND 
            BWART  in r_bwart AND
           BUDAT in r_budat.
endif.

Read only

Former Member
0 Likes
695

Bhupi,

SELECT MATKL SPART MATNR MTART NTGEW FROM MARA
INTO TABLE T_MARA WHERE MTART = 'FERT'
AND SPART = DIVISION.

SELECT MATNR FROM MARA
INTO TABLE T_MAR WHERE MTART = 'FERT'
AND SPART = DIVISION.

loop at t_mar.
SELECT A~MATNR A~WERKS A~MENGE A~BWART A~MBLNR B~MBLNR B~BUDAT
FROM MSEG AS A INNER JOIN MKPF AS B ON A~MBLNR = B~MBLNR
INTO CORRESPONDING FIELDS OF TABLE t_mseg
WHERE MATNR = W_MARA-MATNR AND ( BWART = '101' OR BWART = '102')
AND BUDAT BETWEEN DATE AND DATE1

oopss ;-( even joins are not suggested and you are using join in LOOP.

please use for all entries at T_MAR and avoid the loop.

Amit.

Read only

Former Member
0 Likes
695

Hi,

Change your logic then run program.

To check the maximum time limit set for a time out error in our system?

goto rz10 transaction code you will find there

minimum is 300 sec.

Regards

Adil