Posted: Mon Sep 01, 2008 11:01 am Post subject: Падение на большом select-options
Здравствуйте!
Пользователь заполняет на селекционном экране поле материалы. Когда количество материалов больше 2 тыс, происходит падение в дамп. Если бы в select-options заполнялись только единичные коды материала, можно было бы разбить один длинный селект на несколько селектов. Но названия материалов могут быть заданы как интервалы, и что самое плохое, как исключающие интервалы. В последнем случае просто разбивка на несколько запросов будет работать неправильно. Потому что в первый селект может попасть материал, который должен быть исключен в последующих селектах. Как быть?
SELECT matnr INTO mara-matnr FROM mara UP TO c_max_size ROWS.
s_matnr-sign = 'I'.
s_matnr-option = 'EQ'.
s_matnr-low = mara-matnr.
APPEND s_matnr.
ENDSELECT.
DO.
l_tabix = sy-index.
READ TABLE s_matnr INDEX sy-index.
IF sy-subrc IS INITIAL.
lr_matnr = s_matnr.
COLLECT lr_matnr.
ENDIF.
l_mod = l_tabix MOD c_max_size.
IF l_mod EQ 0 OR l_tabix EQ l_max_line.
SELECT * APPENDING TABLE it_mara
FROM mara
WHERE matnr IN lr_matnr.
REFRESH lr_matnr.
ENDIF.
IF l_tabix EQ l_max_line.
EXIT.
ENDIF.
ENDDO.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.