Загрузка исторических данных в 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. В конечном счёте всё сохраняем.
У нас появляется запись:
… которую мы выбираем на первом экране первого шага:
Собственно, все последующие шаги аналогичным шагам предыдущей инструкции. Успехов!
Транзакция LSMW инструкция по применению. Часть 1
Транзакция LSMW инструкция по применению
Башкатов Олег Викторович
В этой книге приводятся практические решения задач с использованием транзакции LSMW для загрузки данных на основе методов Batch Input, BAPI и Direct Input. Примеры базируются на бизнес-сценарии миграции данных, приведённом чуть далее во вступлении.
Оглавление книги
4. Загрузка классификации ОЗМ методом Direct Input в транзакции LSMW
5. Загрузка длинных текстов материала методом Direct Input в транзакции LSMW
6. Загрузка остатков ОЗМ методом BAPI в транзакции LSMW
7. Массовое сторно документов материала методом Batch Input транзакции LSMW
8. Полезные возможности транзакции LSMW
9. Загрузка данных из Excel в транзакции LSMW
Благодарности
Эта книга не состоялась бы без поддержки людей, с которыми меня свела судьба, а именно: Светланы Балакиревой, Александра Дублина, Юрия Нечитайлова, Михаила Сковородина.
Транзакция LSMW, как правило, сопровождает проекты внедрения и активной поддержки; и на этих проектах я работал с людьми, которые являлись настоящими профессионалами, и (что важно для меня) помогали мне при решении различных задач. Говорю о: Виталии Сапунове, Владимире Петриеве, Юрии Синко, Андрее Белобродском, Олеге Точенюке, Татьяне Кузьмичёвой, Сергее Смирнове, Анне Трещаловой, Павле Троеве, Александре Шиляеве, Сергее Андриановском.
Благодарю ключевых пользователей и бизнес-экспертов, с которыми были реализованы эффективные решения: Зайцеву Татьяну, Дмитрия Обедзинского, Ирину Петряшову, Дмитрия Леонтьева, Ивана Леонтьева, Людмилу Гусарину, Татьяну Тимохину, Татьяну Скорлыгину, Алексея Смирнова, Эльмиру Рахматбаеву, Juergen Graupner, Alan Green.
Также я благодарен руководителям, которые помогали мне реализовывать идеи и поддерживали в трудных ситуациях: Анне Лобачевской (Юрьевой), Юрию Желтоухову (первое обучение по LSMW было инициировано Юрием, что в дальнейшем явилось прообразом мастер-класса «LSMW: инструкция по применению» и этой книги), Сергею Чумак, Марии Лавровой, Татьяне Типсиной, Марии Лорман, Лебедеву Дмитрию, Шленкину Станиславу.
Спасибо коллегам, которые поддерживали меня: Мясоутовой Ирине, Диковой Алевтине, Свиридову Роману, Спиридоновой Наталье, Алексею Сутягину, Михаилу Абашину, Валерию Фатьянову, Алексею Слободянюк, Роману Байбак, Дмитрию Шулейко, Андрею Налимову, Наталье Смирновой, Вадиму Сухоруких, Денису Желтикову, Алексею Митько.
Огромное спасибо всем слушателям моих мастер-классов за посещение, интересные вопросы и обоснованную критику.
Отдельное спасибо Жанне Максаковой за поддержку, терпение и последовательное применение в своей практике материалов мастер-класса.
Благодарю своих родителей Светлану и Виктора Башкатовых.
Вступление
В этой книге приводятся практические решения задач с использованием транзакции LSMW для загрузки данных на основе методов Batch Input, BAPI и Direct Input. Примеры базируются на бизнес-сценарии миграции данных, приведённом чуть далее во вступлении.
Транзакция LSMW не переведена на русский язык полностью, поэтому в тексте использованы скриншоты в том виде, как они встречаются на практике, а уже в комментариях дополнительно указывается перевод терминов на русский язык.
Данная книга будет интересна всем, кто решает практические задачи, связанные с массовой загрузкой/обновлением данных в системах SAP, включая консультантов, ключевых пользователей и менеджеров проектов.
Транзакция LSMW позволяет сэкономить время на выполнении рутинных задач, высвободив его для решения задач, требующих творческих усилий.
Бизнес-сценарий
Начнём с описания конкретного примера бизнес-сценария. Предприятие в Северо-Западном округе подключает к системе SAP ERP одно из своих подразделений. Одной из задач, требующих решения, является миграция остатков для этого подразделения. Для этого консультантам нужно выполнить следующие действия (рис. А):
Рис. А. Описание бизнес-сценария
В последующих главах подробно рассматривается реализация данных действий с использованием транзакции LSMW на основе упомянутых ранее методов. В ходе решения практических задач с использованием данной транзакции будут приведены полезные советы и указаны тонкости, позволяющие ускорить весь этот процесс. Однако ряд тонкостей, связанных с использованием транзакции LSMW, всё же не удастся подчеркнуть на примере реализации действий именно этого бизнес-сценария, поэтому в конце книги приводится отдельная глава, посвящённая ускользнувшим от внимания полезным трюкам по работе с транзакцией LSMW. Помимо этого, в ней описаны некоторые альтернативные инструменты загрузки данных.
Данная книга способствует достаточно полному освоению инструмента загрузки данных.
Массовое обновление материалов методом Batch Input в транзакции LSMW
В рамках задачи миграции данных (рис. 1.1) нам требуется внести изменения в существующие записи материалов, а именно: ограничить их использование, поставив соответствующий статус материала, группу полномочий, а также обновить краткий текст ОЗМ.
Рис. 1.1. Этап обновления существующих ОЗМ в общей схеме задач миграции
Далее будет показано решение задачи обновления данных методом пакетного ввода. Метод пакетного ввода предполагает предварительное создание записи (recording) на основе ручного указания значений для полей. Система фиксирует поля, которые нужно заполнять. Значения для полей представляют собой переменные данные, которые можно заполнять из внешнего файла.
Помимо этого, мы обсудим следующие важные вопросы:
1.1. Практическое решение задачи
Постановка задачи: требуется обновить основные записи материалов, а именно: ракурс Основные данные 1 (Basic Data 1) и Основные данные 2 (Basic Data 2). В таблице 1.1 приведены поля для загрузки.
Табл. 1.1. Поля для обновления данных основной записи материала
На предварительном шаге подготовим данные для загрузчика, а именно: пройдёмся вручную по изменяемым полям.
Предварительный шаг
Чтобы сделать загрузчик, пройдемся по пунктам ниже.
Рис. 1.2. Запуск транзакции MM02 для изменения основной записи материала
Рис. 1.3. Выделяем ракурсы Основные данные 1 (Basic Data 1) и Основные данные 2 (Basic Data 2)
Рис. 1.4. Обновляем данные на ракурсе Основные данные 1 и переходим к ракурсу Основные данные 2
Рис. 1.5. Обновляем Основные данные 2 и можем сохранить изменения
Текущую задачу мы решим с помощью последовательности шагов, выделенных в отдельные последующие параграфы.
Шаги решения
Шаг 1: создание/выбор проекта, подпроекта и объекта
Запустим транзакцию LSMW, заполним данные Project (проект), Subproject (подпроект), Object (объект), нажмем кнопку Создать (если проект уже создан, то нажимаем кнопку Выполнить) (рис. 1.6). Данные для создания проекта приведены в таблице 1.2. Заполнение описания составляющих объекта показано на рис. 1.7.
Рис. 1.6. Для создания проекта нажимаем кнопку Создать (если проект существует, нажимаем Выполнить)
Рис. 1.7. Заполнение описания проекта (Project), подпроекта (Subproject), объекта (Object)
Табл. 1.2. Данные для создания Object (объекта) в транзакции LSMW
После создания и/или запуска проекта система откроет основное меню транзакции LSMW. Пункты меню зависят от метода загрузки и могут настраиваться (подробнее об этом в дальнейших публикациях).
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
Транзакция LSMW инструкция по применению. Часть 8
Транзакция LSMW инструкция по применению
Башкатов Олег Викторович
В этой книге приводятся практические решения задач с использованием транзакции
LSMW для загрузки данных на основе методов Batch Input, BAPI и
Direct Input. Примеры базируются на бизнес-сценарии миграции данных.
Массовое сторно документов материала методом Batch Input транзакции LSMW
Продолжение книги.
В этой главе будет описано решение задачи по массовому сторно документов материала. Загрузчик на массовое сторно документов материала практически всегда сопровождает загрузку остатков, в силу того что не всегда получается сделать загрузку с первого раза корректно. Загрузчик, представленный в настоящей главе, выполняет загрузку не из файла на фронтэнде, а из файла на сервере приложений (application server). В решении бизнес-задачи мы находимся на этапе создания инструмента для массового сторно документов материала, которые загружали начальные остатки (рис. 6.1). В настоящей главе не описываются подробно те шаги, которые были детально описаны в предыдущих главах.
Рис. 6.1. Задача сторно документов материала в общей схеме задач миграции
Задача состоит в создании возможности массового сторно документов материалов. При этом дата сторно должна быть та же, что и в исходном документе материала. Файл источника данных будет находиться на сервере.
6.1. Операционные условия
Для решения поставленной задачи мы будем использовать пакетный ввод на транзакцию MBST. Дату найдем с помощью дополнительной подпрограммы. Таким образом, в исходном файле у нас будет всего один столбец, где будет храниться номер документа материала (см. таблицу 6.1). В качестве года документа материала будем использовать текущий год.
Табл. 6.1. Поля для массового сторно документов материала
На предварительном шаге: подготовим данные для загрузчика, а именно — пройдемся вручную в транзакции MBST. В транзакции MBST укажем сторнируемый документ материала и нажимаем E, затем нажимаем кнопку Сохранить (рис. 6.2 и рис. 6.3). Такие простые действия позволяют сторнировать документ материала.
Рис. 6.2. Начальный экран транзакции MBST (сторно документа материала)
Рис. 6.3. Сообщение об успешном сторнировании документа материала
Для подобных действий в системе метод Batch Input весьма подходит. Количество экранов минимально и количество данных также минимально.
6.2. Пошаговое решение задачи
Шаг 1: создание/выбор проекта, подпроекта и объекта
Создадим новый объект транзакции LSMW согласно данным из таблицы 6.2.
Табл. 6.2. Данные для создания объекта LSMW
Шаг 2: параметры метода загрузки: выбор/создание записи пакетного ввода (Batch Input)
Дважды щелкаем по пункту меню Maintain Object Attributes, указываем имя записи (рис. 6.4).
Рис. 6.4. Указываем имя записи для Batch Input Recording
Выбираем пункт Batch Input Recording, нажимаем кнопку Overview. Создаем запись для транзации MBST; на выходе получаем данные как на рис. 6.5.
Рис. 6.5. Результат создания записи в Batch Input Recording
Шаг 3: создание структуры источника [данных]
Дважды щелкаем по пункту Maintain Source Structures в основном меню транзакции LSMW. После создания структуры система отобразит экран как на рис. 6.6.
Рис. 6.6. Создаем структуру источник для объекта транзакции LSMW
Шаг 4: ведение полей структуры источника [данных]
Щелкаем дважды по пункту Maintain Source Fields в основном меню транзакции LSMW.
Указываем поле в структуре (рис. 6.7.)
Рис. 6.7. Указываем поле в структуре — источнике данных
Введенные данные представлены в таблице 6.3. После добавления поля система покажет экран, как на рис. 6.7. В основном экране шага сохраняем данные и выходим к обзору списка шагов, чтобы перейти к следующему шагу.
Табл. 6.3. Описание структуры — источника данных для массового сторно документов материала
Шаг 5: соответствие структур источника данных и записи
Дважды щелкаем по пункту Maintain Structure Relations в основном меню транзакции LSMW. На этом шаге нам необходимо определить (задать) соответствие между внутренней структурой данных (то есть полями записи) и структурой источника данных. В случае метода записи этот шаг выполняется чаще всего автоматически; и от того, кто готовит загрузчик, требуется подтвердить привязку: сохранить и выйти к обзору списка шагов, чтобы перейти к следующему шагу (рис. 6.8).
Рис. 6.8. Результат присвоения структуры источника данных и записи
Шаг 6: мэппинг (соответствие) полей источника [данных] и полей записи пакетного ввода
Дважды щелкаем в основном меню транзакции LSMW по пункту Maintain Field Mapping and Conversion Rules. Нажмем на кнопку Layout и откроем блоки: Global Definitions, Processing times и Form Routines (ABAP Subroutines) (рис. 6.9).
Рис. 6.9. Откроем блоки lля вставки нужного нам ABAP-кода
Детальный мэппинг полей и блоков приведен в таблице 6.4.
Табл. 6.4. Мэппинг полей структур BAPI и входного файла
Заметим, что подпрограмма ur_skip_rec была создана в одной из предыдущих глав в рамках этого же проекта, поэтому эта подпрограмма доступна нам и сейчас. Напомним, что подпрограмма ur_skip_rec является user-defined routines skip_rec, определяемая в пункте меню транзакции LSMW Maintain Fixed Values, Translations, User-Defined Routines (рис. 6.10). Сам код подпрограммы приведен в таблице 4 вместе с остальными полями. Детальное пояснение подпрограммы было дано в главе 4.
Рис. 6.10. User defined routines skip_rec
Шаг 7: указание пути к файлу (application server)
Прежде чем указывать путь к файлу, необходимо создать файл по нужному нам формату. Для создания входного файла будем использовать табличный редактор Excel. Первую строку в Excel заполним техническими именами полей входной структуры. А строки, начиная со 2-й, заполним уже конкретными значениями (рис. 6.11).
Рис. 6.11. Данные загрузки в табличном редакторе Excel
Рис. 6.12. Данные в блокноте, перенесенные из табличного редактора Excel
Мы создали файл на жестком диске ПК (обратим внимание, что кодировка файла UTF-8). Однако теперь нам необходимо создать файл на Application Server. Для первоначального создания/загрузки файла на application server можно использовать транзакцию CG3Z (Upload file) (рис. 6.13). Необходимо заметить, что из SAP-системы можно загрузить файл в ограниченное количество директорий на application server. По поводу того, какие директории можно использовать, а какие — нет, лучше проконсультироваться с командой базиса на каждом конкретном проекте. Более того, рекомендуется выделить для LSMW отдельную директорию, а в рамках общей папки LSMW выделить подпапки для конкретных проектов (но это очень идеальная ситуация). Как правило, папки для временной загрузки доступны для SAP-пользователя на Linux. К временным папкам относятся: /usr/sap/tmp/, /tmp/. Список папок можно просмотреть с помощью транзакции AL11 или функционального модуля /SAPDMC/LSM_F4_SERVER_FILE. Мы выполним первоначальную загрузку (а вместе с ней и создание файла на сервере) в папке /usr/sap/tmp/ (рис. 6.13).
Рис. 6.13. Успешная файла на application server
После создания текстового файла на сервере приложений переходим к указанию его в качестве файла-источника. Дважды щелкаем по пункту меню транзакции LSMW Specify Files. Задаём параметры файла (рис. 6.14.).
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
Загрузка исторических данных в SAP с помощью LSMW (Legacy System Migration Workbench)
При внедрении ERP-системы SAP одним из наиважнейших вопросов является вопрос загрузки данных исторических систем (тех, что функционировали на предприятии до внедрения SAP) в новую ERP. Для этого существует мощнейший инструмент внутри SAP — Система Переноса данных из Исторических Систем (LSMW). За 8 лет работы с SAP я накоил солидный опыт работы с этой системой, а, поскольку для LSMW нет легкодоступных для понимания мануалов (тем более на русском) и ко мне постоянно обращаются за советами коллеги по цеху, найдя меня на российском форуме САП, смею полагать, что сия статья окажется весьма познавательна как стажёрам, так и опытным консультантам, пока что не имеющих опыта работы с LSWM.
Запускаем транзакцию LSMW и, о чудо, нас уже приветствуют: Welcome to the Legacy System Migration Workbench!
На начальном экране мы видим следующую картинку
Перво-наперво, нужно создать проект (Project). Проектом может быть как, например, верхнеуровневый «проект» (например, с названием «PM» для работы с ним всей группы ТОРО (Техническое обслуживание и ремонт оборудования)), так и более локализованный, например, проект загрузки в систему Технических Объектов (назовём его «Tech Objects»). Я рекомендую не плодить сущности и, вспомнив заповедь дядюшки Окама, в качестве проекта заводить как-раз таки верхний уровень. Это очень удобно всем проектным группам — в LSMW видеть в качестве проекта свои модули.
Становимся курсором в поле Project и жмём белый листок. Создаём проект. В случае с моим примером это будет «PM».
Затем создаём подпроект (Subproject). Это тоже всего лишь структуризация вашего проекта, поэтому в зависимости от принятого решения о выборе проекта соответствующим образом создаём и подпроект. В случае моего примера, подпроектом будет как-раз «Tech Objects».
Ну и объект (Object). Тут уже детализируем, что именно мы собираемся грузить в систему/изменять с помощью LSMW. Например, мне требуется загрузить данные Единиц Оборудования. В таком случае, я создаю объект “PoE Upload”
Создали проект, подпроект и объект, запускаем.
Видим экран с двадцатью шагами
(в пункте меню Edit включаем Numering On для того, чтобы напротив каждого шага отображался порядковый номер)
1) Шаг первый — Maintain object attributes
На этом шаге нам необходимо указать, каким образом мы будем производить загрузку данных. Я остановлюсь на двух наиболее часто используемых мною и популярных в принципе методах.
A) Стандартный Объект (Standart Batch/Direct Input)
В LSMW предусмотрен перечень предопределённых объектов, среди оторых с большой долей вероятности есть тот, который нужен вам.
В моём случае это Единица оборудования
В поле Method выбираем 0001 — Создание ПакВв (то есть «пакетный ввод»).
B) Batch Input Recording
Если вам не достаточно стандартного объекта, либо для ваших нужд стандартного объекта нет в принципе, в этом случае вам необходимо записать «макрос» (так я его называю). То есть вы вызовете транзацкию, данные которой вам и необходимо загрузить, и записываете последовательность ваших действий, а потом, на последующих шагах, подстать записанному «макросу» вы создадите структуру для файла-шаблона загрузки.
Метод Batch Input Recording я распишу при наличии времени в отдельном топике (это большая отдельная тема), если топик найдёт своего читателя.
2) Шаг второй — Maintain source structures
На этом шаге нам необходимо определить структуру наших загружаемых данных. В случае с Единицами Оборудования структура будет одноуровневой («плоской»), без подчинённых подструктур. Последние бы пригодились нам, скажем, в случае загрузки Заказов ТОРО, когда для одного заголовка Заказа может быть N операций, к каждй из которых может быть M компонентов. А у единицы оборудования есть номер и набор данных, без вложенности.
Если структура плоская, то этот шаг — формальность. Создаём структуру, например, «Main». Сохраняем, выходим.
3) Шаг третий — Maintain source fields
На шаге 3 определяем поля, которые мы планируем грузить.Позиционируем курсор на нашу структуру Main, жмём значок «белый лист» и создаём поля.
Поля — это те поля, которые вы собираетесь прогружать для вашего объекта. В моём случае я хочу, скажем, для Единицы Оборудования грузить:
— номер ЕО
— название ЕО
— вид объекта
Это, естественно, пример. Вы можете грузить любые поля. Я же для краткости ограничусь лишь этими тремя.
Чтобы в дальнейшем, на шаге №5 вам не заморачиваться с сопоставлением вами придуманных названий полей с ситемными полями, да и просто для чёткости, предлагаю именовать поля также, как они именуются в системе. Чтобы узнать, как называется то или иное поле, какого они типа и какой разрядности, становимся курсором на это поле и жмём «F1».
В появившемся окне проваливаемся по двойному клику (drill down) в запись «Имя поля»
Среди полей находим интересующее нас (в данном случае «Номер единицы оборудования» — это поле EQNR), его тип (CHAR) и длину (18 символов). И, соответственно, эти данные прописываем в создаваемое на третьем шаге поле
Создали набор интересующих нас в качестве загружаемых полей, сохраняем, выходим.
4) Шаг четвёртый — Maintain structure relations
На этом шаге нам необходимо связать наши структуры с стандартными. В случаес моей простой, плоской структурой всё очень просто: позиционируем курсор на IBIP: Удиница Оборудования, жмём белый листочек. Единственная наша структура Main автоматом подвязывается к стандартной структуре ЕО. Сохраняем, выходим.
5) Шаг пятый — Maintain field mapping and conversion rules
Здесь нам требуется связать нами созданные поля, предполагаемые к загрузке, с соответствующими полями ЕО, известными системе
Вот тут-то нам и пригодится тто, что на шаге №3 мы обзывали поля также, как их знает система. Теперь в пункте меню Extras жмякаем на Auto-Field Mapping, после чего система автоматом смэппливает поля. Во всех далее появляющихся окошках необходимо нажимать «ОК» и, если у вас нет ошибок в наименовании вами созданных полей, то система автоматом всё смэппит.
После того, как все поля смэпплены, сохраняем и выходим.
6) Шаг шестой — Maintain fixed values, translations, user-defined routines
Пропускаем, он нам в данном случае не нужен.
7) Шаг седьмой — Specify files
На этом шаге нам необходимо указать файла-шаблона с данными к загрузке.
а) Legacy Data On the PC (Frontend)
б) Legacy Data On the R/3 server (application server)
Вариант «а» — это выбор файла-шаблона, располагающего непосредственно на Вашем компьютере, а «б» — на сервере SAP. Со вторым вариантом как-то не сталкивался. Всё время для удобства использую файл, находящийся непосредственно в моей файловой системе. Позиционируемся на Legacy Data (на красную область, жмём листочек «Создать»)
Собственно, создаём текстовый файл на жёстком диске. Вспоминаем, что груим мы три поля:
Номер ЕО
Название ЕО
Вид ЕО
Можно в файле-шаблоне первой строкой через TAB указать системные названия полей для наглядности. Во второй и последующих строчках также через TAB пишем значения для загрузки
На появившемся экране выбираем месторасположения файла-шаблона на диске Вашего компьютера, устанавливаем радиокнопку “Tabulator” на подэкране Delimiter (разделитель), ставим галку на пункте “Field Names at Start of File” (указываем, что первая строка файла — это технические имена полей).
Если у Вас последовательность полей в файле-шаблоне не соответствует соответствующей последовательности шага три — Maintain source fields, то нужно снять галку с пункта “Fields Order Matches Source Structure Definition”. Остальное на экране не трогаем, закрываем и выходим.
8) Шаг восьмой — Assign files
Поскольку у нас плоская структура с одним входящим файлом-шаблоном, открываем этот пункт на редактирование, сохраняем и выходим. Единственный файл наш привязывается к единственной структуре. Формальность.
9) Шаг девятый – Read Data
На этом шаге мы читаем наш файл. Выполняем.
10) Шаг десятый – Display read data
Здесь смотрим на результаты чтения на шаге 10. Если всё нормально, то в правильные поля ложатся правильные данные
11) Шаг одиннадцатый – Convert data
Конвертируем данные во внутренний формат системы
12) Шаг двенадцатый – Display converted data
Собственно, смотрим результаты конвертации
13) Шаг тринадцатый – Create batch input session
Запускаем, галочки выставляем как на принтскрине ниже и разрешаем SAP GUI создавать файл ошибок на локальном жд
14) Шаг четырнадцатый – Run Batch Input session
Запускаем, видим в списке заданий наше. Выделяем строку, жмём «выполнить», открывается окошко. В нём можно выбрать «Выполнить видимо» (тогда каждое заполняемой поле по каждой из N строк из файла-шаблона будет заполняться видимо для Вас и требовать для подтверждения каждой записи нажатия Enter; обычно это используется для теста написанного нами пакетника на одной строчке), либо «Фоновый режим». В фоновом режиме выполнение пакетника будет происходить незримо, а о возникших ошибках или их отсутствии можно будет осведомиться в log-файле.
Этот пример я создавал без предварительной репетиции. В частности, на видимом прогоне я понял, что не указал на третьем шаге обязательное при создании ЕО поле «Тип ЕО», а также, поскольку нумерация для ЕО соотв. типа — внутренняя (то есть нарастающий счётчик), то не нужно было указывать в качестве загружаемого поля поле EQUNR. После исправления этих двух ляпов пакетник успешно отработал и автоматизированно создал ЕО. Таким образм и происходит массовая загрузка исторических данных в SAP. По крайней мере, это один из наиудобнейших и простых способов. Удачи в освоении LSMW!































