Как загружать табличные инфотипы в LSMW

Да просто… через задницу. Существует два вида табличных инфотипов в системе: одностраничные и многостраничные. Как загружать табличные инфотипы? Я до сегодняшнего дня умел грузить одностраничные инфотипы. Сегодня я научился многостраничные заливать бочками.

Да, сразу оговорюсь, что речь идет о загрузке без единой строчки ABAP. С АБАПом и дурак сможет. Наиболее типичные инфотипы это 8, 293, 294, 28. Одностраничный инфотип, это который содержит таблицу и нам не нужно ее прокручивать вниз. Многостраничный инфотип содержит ту же таблицу, но в ней столько данных, что приходится нажимать скроллинг вниз (прокрутку, кнопку PageDn).

Для загрузки одностраничного инфотипа хитрость простая. При записи LSMW нужно в каждое поле таблицы что-то внести, чтобы LSMW создала в Recording поля вида Q0293-BETRG(01), Q0293-BETRG(02) и так далее. То есть, мы можем обратиться к каждому полю, видимому на экране через его порядковый номер сверху. 01, 02, 03 и так далее. Для каждого такого поля можно создать свою переменную в том же Recording.

Если мы записываем многостраничный инфотип, когда нам нужно пролистать таблицу вниз, то дела становятся интереснее. Для этого нам нужно специально сказать при записи, что мы хотим сделать скроллинг вниз. Нажатие на кнопку PageDn или мышкой на стрелочку внизу не поможет. Для этого мы окне команд пишем “P+“. Этот волшебный код пролистнет таблицу на одну страницу вниз. И теперь самое важное! Нумерация строк опять начинается с 01, 02 и так далее.

Так, для загрузки 15 значений в ИТ0293 нужно записать на первой странице 8 значений напротив каждой строчки. Затем нажать P+ в окне транзакций. И снова записать 7 оставшихся значений.

В записи у нас будет на первом экране

Q0293-BETRG(01)
Q0293-BETRG(02)

Q0293-BETRG(08)

Затем будет

А дальше опять

Q0293-BETRG(01)
Q0293-BETRG(02)

Q0293-BETRG(07)

Все эти поля можно вписать руками (кроме BDC_OKCODE). Для этого идем в меню Edit -> Add Screen Field (Extended).