Загрузка исторических данных в SAP с помощью LSMW — пишем «макрос»

Добрый день!

Продолжаю инструкцию по использованию LSMW — Системы Переноса данных из Исторических Систем.

В прошлом посте я рассмотрел метод загрузки данных с помошью стандартных (преднастроенных для создания проекта загрузки) объектов. На этот раз я хочу рассмотреть медод, при котором мы как бы записываем последовательность наших действий с транзакцией, после чего смэппливаем поля с полями подготавливаемого файла-шаблона. Также записать можно и последовательность действий, при которой мы не подгружаем данные из файла-шаблона, например, последовательную смену статусов, переключение между экранами и пр.

Ознакомьтесь с прошлой инструкцией до шага 1.

Вот теперь же, на шаге №1, мы должны выбрать пункт Batch Input Recording и перейти нажатием кнопки «Горы, солнце» в менеджер записей.



Создаём запись.




Выбрав транзакцию, для которой мы хотим записать «макрос» (в моём случае — это ie02 «Изменение Единицы Оборудования»), перед нами открывается, собственно, соотв. транзакция. Выбираем номер ЕО, выходим на начальный экран.

Допустим, мне нужно поменять «Инвентарный номер». Я вбиваю в соотв. поле какое-то значение (у меня то «хабраномер»), жму Enter (проверить, не выскочит ли какая ошибка; м.б. Формат поля числовой, а я об этом забыл). Ошибки нет, новый инвентарник принят.



Допустим, я также хочу изменить наименование «Помещения» на вкладке «Местоположение». Перехожу на эту вкладку, вбиваю в поле «Помещение» значение (у меня «Цех №3»).



Для примера достаточно. Жму «SAVE». И вот тут система мне показывает следующий экран:



На нём мы видим экраны и поля на них, которые я видел во время записи «макроса».

SAPMIEQ0 0100 – это первый экран, где я вбивал номер ЕО, в карточку которой и проваливался позднее. На подсвеченной белым области стоит сейчас номер ЕО, а красноватая область — пуста. Нужно дважды кликнуть на красненькую область.

«Значение по умолчанию» (Default value) очищаем; там и стоял номер ЕО по умолчанию. А нам не нужно по умолчанию. Нам нужно подавать на вход пакетнику из файла шаблонов уйму разных ЕО. В первое поле «Name» пишем EQUNR – техническое имя поля ЕО (его мы видим чуть выше, в «Имя поля»). Во второе поля «Имя» пишем какое-то название поля «для себя», например, «Номер ЕО» или повторяем техническое имя поля.



Это же проделываем и с остальными полями, которые подаём программе на вход. Если же нам нужно, скажем, во всех ЕО поменять в каком-то поле значение на некое, одинаковое для всех, то в этом случае мы как-раз и используем Default value, чтобы не подавать его N раз в фале-шаблоне.

Помните, когда я ввёл «Хабраномер» в поле «Инвентарный номер», я нажимал Enter? Так вот из-за этого я получил ещё одну копию подэкрана SAPMIEQ0 0101 (это основной экран ЕО, первая вкладка «Общее»). Здесь мне уже не нужно повторно обозначать наименования полей, поэтому нам нужно просто стереть наличествующие на дубликате экрана поля. Для этого позиционируемся на поле, жмём указанную на скрине кнопку:



Так мы прописываем соответствие полей там, где нужно, а там, где не нужно — удаляем с экрана. Также, например, мы удаляем поле «Название ЕО» на множестве экранов, на котором оно опять и опять появляется после перехода на другую закладку. Иными словами, наименования ЕО (если нам нужно его менять, подавая в шаблоне) — поля ITOB-SHTXT (у меня его значение «Habratest») — нам хватит указать единожды, на первом из встречающихся подэкране SAPMIEQ0 0101. В конечном счёте всё сохраняем.

У нас появляется запись:



… которую мы выбираем на первом экране первого шага:



Собственно, все последующие шаги аналогичным шагам предыдущей инструкции. Успехов!
  • +5
  • 10,1k
  • 3
Поделиться публикацией

Комментарии 3

    0
    Познавательно. А вы случайно блог не ведете, посвященный сапу? Если ведете, мне было бы весьма интересно почитать.
      0
      Приветствую!

      Нет, увы, оного не веду.
      0
      Неделя САПа на хабре

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое