SAP LSMW — проще некуда!

Автор: | Декабрь 8, 2015

О LSMW написано много, но мой товарищ Михаил Крылов (автор данной статьи) решил предложить свое видение. По-моему получилось неплохо, с учетом некоторых фокусов для ленивых, позволяющих не вбивать параметры вручную.

SAP LSMW — проще некуда!

Наиболее распространенными транзакциями для ввода пакетных данных (это когда много однотипных данных нужно ввести в одну или несколько форм) в SAP являются SECATT и LSMW. В силу разных причин SAP рекомендует отключать ECATT для продуктивных сред. Если администраторы базиса последуют этой рекомендации, у читателя не будет возможности запустить свой пакет сразу в продуктивную систему, и придется прогонять данные в тестовых средах. А это, обычно, занимает больше времени: подготовка данных справочников, приведение настроек к равенству с продуктивом и т.д. Именно поэтому можно и нужно уметь работать с транзакцией LSMW. А наиболее простой способ работы с этой замечательной транзакцией будет описан в этой инструкции

Запуск транзакции.

Если вы не умеете запускать транзакции SAP, то зачем вообще открыли эту инструкцию?

Создание проекта

Запустите транзакцию LSMW

Для создания нового проекта нажмите листик .

Здесь мы вводим проект, подпроект и объект. Проект может содержать множество подпроектов, которые могут содержать множество объектов.

Заполните поля: Проект (Project) и Описание (Description). Код проекта должен быть написан на латинице.

Нажмите ОК (зеленую галочку ;).

Заполните поля: Подпроект (Subproject) и Описание (Description). Код подпроекта должен быть написан на латинице.

Нажмите ОК.

Заполните поля: Объект (Object) и Имя (Name). Код объекта должен быть написан на латинице.

Название проекта, подпроекта и объекта автор рекомендует скопировать в блокнотик.

Нажмите ОК.

Проект создан.

Заполнение проекта

Существует множество вариантов заполнения проектов LSMW. Автор предлагает рассмотреть наиболее простой вариант. В общем виде он таков:

  1. Запись действий пользователя (скрипт);
  2. Объявление «переменных» для полей, в которые пользователь вносил данные, в процессе записи скрипта;
  3. Создание структуры пользовательских переменных ;
  4. Связь переменных структуры и переменных для полей скрипта;
  5. Заполнение структуры данными;
  6. Прикрепление и запуск пакета данных.

У данных логических пунктов есть технические аспекты. SAP предлагает выполнять все технические моменты с помощью “регламента”, которые вы увидите на форме ниже. Подробнее остановимся на каждом шаге регламента.

Нажмите Часы

В открывшейся форме указаны шаги регламента, которые необходимо выполнить. Некоторые обязательны для выполнения, другие технические.

Maintain Object Attributes. Ведение атрибутов объекта.

Здесь создаем запись последовательных действий пользователя (скрипт).

Выделите строку и нажмите Часы.

Нажмите

Выберите «Batch Input recording» (запись входного пакета) и нажмите обзор.

Откроется форма ведения записи пакета

Нажмите «Листик». Укажите название записи и её описание. Логин не трогайте.

Нажмите ОК.

Далее введите код транзакции, в которой будет происходить все действо.

В нашем примере покажем, как массово присвоить роли для штатных должностей. Итак:

Нажимаем ОК. Заполняем данные. Находим должность.

Нажимаем “Листик”. Вводим тип объекта и роль.

Нажимаем “Сохранить”.

Получаем отчет . Выходим из транзакции.

Получаем такую форму:

SAP показывает, какие значения в полях были и какие были введены руками.

Чтобы быстро и без заморочек создать переменные для всех полей скрипта нажимаем кнопку .

Если нужно создать только несколько переменных (в которые в дальнейшем будут литься данные), то выбираем строку и нажимаем кнопку .

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

В розовых Полях появятся названия переменных.

Сохраняем и возвращаемся назад . Выходим из ведения атрибутов .

Сохраняем на каждом экране.

В поле “Recording” прописываем название записи.

Существует возможность записать скрипт и вне данной транзакции. Например вот так:

Нажмем кнопку

Укажем название записи и код транзакции. Конец примера.

Название записи и есть то, что нам нужно прописать в поле “Recording”

 

Сохраняем . Выходим .

Maintain Source Structures. Ведение структуры.

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

Заходим. Создаем структуру по-умолчанию. Сохраняем. Выходим.

Maintain Source Fields. Ведение источника полей.

Здесь создаются пользовательские переменные, а также заполняются их параметры.

Некоторые специалисты долго корпят над созданием структуры пользовательских переменных. Автор покажет быстрый и эффективный способ избавить себя от подобных “мучений”.

Заходим в форму. Нажимаем мышкой на структуру (выделена желтым) и переключаемся в табличный режим

Открываем еще один режим SAP . Запускаем транзакцию SE16. Вводим таблицу /SAPDMC/LSGBDC

Ентер . Вводим название нашего проекта (блокнотик ауу!!!).

Часы.

Выберем нужные поля. Меню:

Отмечаем два поля:

Скопировать.

Выгружаем даные в текст с табуляторами

ОК.

Проваливаемся в «Имя файла» и указываем место хранения и имя файла

Сохранить

Создать. Если файл уже существует – Заменить.

В созданном файле Excel удалям все пустые столбики и строки. Удаляем повторы и строки с размером равным нулю. Между столбцами вставляем еще один столбец “Type”. Всем ячейкам столбца задаем значение “С” (char).

Копируем все данные в таблицу LSMW (без заголовка)

Сохраняем. Выходим.

Сохраняем. Выходим.

Maintain Structure Relations. Ведение связей структуры.

Здесь указываем связи структур, если их несколько. В нашем примере структура одна. Щелкаем на структуру и нажимаем Relationship

Связь установлена

ОК. Сохраняем. Выходим.

Maintain Field Mapping and Conversion Rules. Ведение мэпинга (связей) и правил изменения данных.

Здесь указываем связь переменных скрипта и переменных структуры.

Нажимаем на первое поле.

Нажимаем на кнопку

Связываем пользовательские переменные структуры и переменные скрипта

Так и проходим по всем полям вручную.

Или, если названия переменных совпадают, делаем автомэпинг:

Смотрим на проценты и нажимаем  (см. ниже)

Получаем вот что:

Сохраняем. Выходим.

Maintain Fixed Values, Translations, User-Defined Routines

Ведение констант, преобразований, правил.

В нашем примере эту “муть” рассматривать не будем.

Зашли, нажали “Листик”. Ввели название. ОК. Вышли. Всё!

Specify Files

Создадим файл для загрузки. Открываем лист Excel. Открываем наш скрипт.

Из скрипта копируем (Ctrl+Y) переменные и вставляем вниз листа Excel. Выделяем вставленный столбец с переменными, копируем и транспонируем его в первую строку листа.

Тоже самое делаем со значениями по-умолчанию (это чтобы не запутаться, где какое поле).

Автор рекомендует выделить те переменные, которые будут меняться.

Дальше, копируем строки по вместо красных подставляем то что нужно (должности и роли).

А если вдруг что, то у нас все переменные есть. Можно и дату присвоения роли поменять.

Не забудьте удалить скопированные столбцы. Внимательно просматривайте файлы. Эксель любит «хавать» нули. А для SAP «001» и «1» это не одно и тоже. Поэтому только текстовый формат данных.

Вот что получаем на выходе:

Сохраняем. Выбираем этот файл для пакетного ввода.

Входим. Нажимаем карандаш.

Два раза щелкаем в “On the PC (Frontend)”.

Выбираем файл. Копируем его название.

Ставим точки и галки:

Ок.

Сохраняем. Если система ругается на  (название не больше 45 символов) переименуйте её. Выходим.

Assign Files

Здесь связываем файлы и структуру. Входим.

Нажимаем кнопку

Ок. Сохраняем. Выходим.

Read Data

Считывание данных. Входим. Указываем строки, которые будут считаны. Часы.

Данные считались:

Выходим.

Display Read Data

Просматриваем данные.

Указываем с какой строки и по какую строку показать

Видим, что данные загрузились.

Convert Data

Конвертация данных. Запускаем, вводим строки от и до:

Часы.

Выходим.

Display Converted Data

Просмотр конвертированных данных. Запускаем. Указываем строки от и до:

ОК

Если все желтое – значит формат полей и данных совпадает. Выходим.

Create Batch Input Session

Создадим сеанс пакетного ввода.

Всё по-умолчанию. Часы.

Всё вроде хорошо.

Run Batch Input Session

Запускаем пакет. Выделяем наш проекта. Меню: Сеанс –Выполнить в фоновом режиме.

Если сеанс выполнять в фоновом режиме программа игнорирует желтые сообщения. Запускаем.

Проверяем выполнение.

Готово. Проверим данные.

Добавить комментарий