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

«Усо­ве­рше­нство­ва­ние метода Cross-Docking в ко­мпо­не­нте Extended Warehouse Management SAP ECC 6.0»
Денис Мужжухин:
вторая статья автора, где нет структуры. такое впечатление, что просто набор скриншотов, где автор что-то настраивал. опять ссылки в корень help.sap.com. пожалуй, я воздержусь от статей данного...
«Усо­ве­рше­нство­ва­ние метода Cross-Docking в ко­мпо­не­нте Extended Warehouse Management SAP ECC 6.0»
Денис Свеженин:
Статья интересная, касается редко освещаемой темы. К сожалению, в ней не освещена настройка кросс-докинга в отедельно стоящей системе SAP EWM, а также особенности для отсраслевого решения Retail....

Создание складов с помощью функциональности LSMW

7246
19

Заказчиком принято решение для каждого материально ответственного лица создать в системе SAP отдельный склад.

Для выполнения этого условия основные данные каждого склада должны содержать табельный номер сотрудника – материально ответственного лица. Табельный номер предполагается вносить в поле «критерий поиска 2» в адресных данных склада с обозначенным номером склада. Количество складов, которые должны быть созданы для материально ответственных лиц, превышает 500.

Необходимо создать объект (Object) для проекта в транзакции LSMW. Запускаем транзакцию LSMW (Рис.1).

Рисунок 1. Запуск транзакции LSMW

Появляется информационное сообщение (Рис.2). Нажимаем на «Зелёную галочку».

Рисунок 2. Информационное сообщение при запуске LSMW

Нам необходимо создать свой Object в Subproject в Project.

Замечание: Интерфейс транзакции LSMW не переведен на русский язык полностью, чтобы было легче ориентироваться, термины в данной статье приводятся так, как они выводятся на экран системой.

Для одновременного создания Project, Subproject и Object необходимо соответственно ввести наименования в поля Project, Subproject и Object и нажать кнопку «Create Entry» пиктограмма  (Рис.3).

Рисунок 3. Создание Object для транзакции LSMW

Задаём последовательно имена Project, Subproject и Object (Рис 4).

Рисунок 4. Задаем имена Project, Subproject и Project

Нажимаем «Continue», пиктограмма  (Рис.5)

Рисунок 5. Нажимаем кнопку "Выполнить"

В открывшемся окне (Рис.6) нажав на кнопку «Double Click=Display»переходим из режима просмотра в режиме изменения, в результате наименование кнопки изменится на «Double Click=Change».

Рисунок 6. Переход в режим изменения

В списке «Process Step» (Рис.7) должен быть выбран пункт «Maintain Object Attributes». Затем нажимаем кнопку «Execute» (пиктограмма ).

Рисунок 7. Выбрав пункт "Maintain Object Attributes", нажимаем "Execute".

С помощью пункта Maintain Object Attributes настраиваются способ загрузки данных и некоторые базовые настройки пакетной загрузки данных (Рис.8).

Для данного решения мы зададим способ загрузки посредством записи («Batch Input Recording»). Этот способ позволяет последовательно записать действия пользователя, а затем повторить эти действия, но уже с другими значениями. Создание атрибутов в пункте «Maintain Object Attributes» является первым шагом в создании пакетного ввода.

Шаг 1

Выберем значение «Once-only» для Data Transfer и в области «Object Type and Import Method» укажем «Batch Input Recording» и затем нажмём кнопку «Overview» (пиктограмма ).

Рисунок 8. Указываем метод загрузки "Batch Input Recording" и нажимаем кнопку "Overview"

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

В открывшемся окне (Рис.9) необходимо перейти по меню Recordings -> Create Recordings

Рисунок 9. Меню Recording -> Create Recording

Необходимо наименовать и описать Шаблон. Затем нажимаем «Зелёную галочку» (пиктограмма ).

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

Затем нажимаем «Зеленую галочку», пиктограмма .

Рисунок 10. Указываем имя Recording, заполняем поле Description; поле Owner автоматически заполняется именем пользователя.

В следующем окне (Рис.11) система запросит код транзакции, укажем – OX09, так как основные данные склада ведутся в транзакции OX09. Затем нажимаем «Зеленую галочку», пиктограмма

Рисунок 11. Указываем код транзакции, в которой будем вносить данные.

В окне (Рис. 12 ) указываем «Завод», для которого создается склад, и дважды нажимаем «Скопировать», (Enter или пиктограмма ).

Рисунок 12. Указываем код завода, для которого создаётся склад, и нажимаем "Скопировать"

В следующем окне (Рис.13) нажмём кнопку «Новые записи»,  и введём код склада и его название.

Рисунок 13. Для создания нового склада нажимаем кнопку "Новые записи".

Вводим код склада и его наименование (Рис.14).

При вводе кода склада и наименования необходимо иметь в виду ограничения:

  • код склада должен быть уникальным в рамках одного завода;
  • код склада не должен превышать 4х символов;
  • наименование не должно превышать 16 символов.

Рекомендация автора: При разделении по материально ответственным лицам не следует в наименовании склада указывать только фамилию материально ответственного лица без привязки к реальному складу или отделу. Люди могут быть переведены на другие должности в другие отделы и больше не являться материально ответственным; тогда придется либо менять наименование склада, либо удалять склад вовсе – как первое, так и второе может привести к некорректной отчётности. Рекомендую указывать либо только часть фамилии, либо не указывать фамилию вовсе, указывая реальное наименование склада и добавляя порядковый номер. Фамилию, Имя, Отчество и табельный номер желательно указывать в подробных адресных данных (будет показано ниже) с определённым номером адреса.

Рисунок 14. Вводим код и наименование склада

Затем необходимо перейти в подробные адресные данные склада. Для этого переходим по меню Ракурс таблицы -> Другой ракурс (Рис.15)

Рисунок 15. Переход к другому ракурсу

В открывшемся окне (Рис.16) следует поставить курсор на ячейку «Адреса складов» и нажать «Скопировать», или ENTER, или пиктограмму .

Рисунок 16. Переходим к ведению адресов складов.

В открывшемся окне (Рис.17) для создания номера адреса склада необходимо нажать кнопку «Новые записи»,  и ввести код номера адреса склада.

Рекомендация автора: Для единообразного ведения складов следует выделить один и тот же код номера адреса склада для всех складов, где будет вестись однотипная информация (например, ФИО, табельный номер, и дата, с которой данное материальное ответственное лицо является ответственным за запасы по данному складу).

В нашем случае для этих целей используем код Z01 номера адреса склада.

Рисунок 17. Ввод кода номера адреса склада.

После введения кода номера адреса склада – нажимаем кнопку «Галочка на зеленом шаре», пиктограмма

Рисунок 18. После введения кода номера адреса склада - нажимаем "Галочку на зеленом шаре".

Система выведет на экран окно «Обработка адреса» (Рис.19). В данном окне можно вводить подробные данные склада (например, полные фамилию, имя и отчество материально ответственного лица).

Для нашего случая заполним поля используя данные Таблицы 1.

Таблица 1

Остальные поля оставим не заполненными.

После заполнения полей нажимаем «Зелёную галочку», пиктограмма .

Рисунок 19. Обработка адреса для номера адреса склада.

«Зеленая галочка» находится внизу экрана (Рис.20)

Рисунок 20. Нажимаем на кнопку "Зеленая галочка".

После заполнения параметров склада, его наименования и подробных адресных данных нам необходимо сохранить все введённые данные и положить их в транспортный запрос для переноса в тестовую, а затем в продуктивную систему. Для этого нажимаем на кнопку «Сохранить» (Рис.21), пиктограмма , и указываем номер запроса или создаём новый. После указания номера транспортного запроса настройки нажимаем «Зеленую галочку», пиктограмма .

Рисунок 21. Сделанные изменения сохраняем в транспортный запрос настройки.

После сохранения данных в Запросе выходим из транзакции OX09 к ведению записи в LSMW, последовательно нажимая кнопку «Назад», пиктограмма .

В окне «Create Recording» транзакции LSMW (Рис.22) нам необходимо задать имена полям, в которые мы вводили данные.

Рекомендация автора: Следует пользоваться техническими именами полей, при необходимости добавляя к ним индекс.

Итак, зададим имя полю, куда мы вводили код завода. Для этого дважды щелкнем по полю, справа от значения кода завода; данное поле имеет розовый цвет.

Рисунок 22. Задаем имя поля для кода завода – дважды щелкаем по выделенному полю розового цвета.

В открывшемся окне (Рис.23) задаём в первом поле NAME – код имени поля (рекомендуется использовать техническое имя поля); во втором поле NAME указываем описание данного поля. Рекомендую также удалить значение из поля «Default Value» для полей, в которых информация об одном объекте, скорее всего, будет отличаться от другого, чтобы предотвратить создание неправильных данных.

После указания кода поля и описания, нажимаем «Зеленую галочку», пиктограмма .

Рисунок 23. Задаем имя поля и описания для записи в LSMW.

Затем прокручиваем вертикальную полосу прокрутки до следующего поля и поступаем аналогично: дважды щелкаем по части выделенной розовым цветом, заполняем код, описание, убираем Default Value (если в этом есть потребность) и нажимаем «Зеленую галочку», пиктограмма .

Рисунок 24. Прокручиваем вертикальную полосу прокрутки до следующего поля и задаем: код, описание и нажимаем ENTER.

В нашем случае будем использовать имена для записи в транзакции LSMW из Таблицы 2

Таблица 2

В результате наших действий экран «Recording» транзакции LSMW будет выглядеть приблизительно так (Рис.25, показана часть)

Рисунок 25. Коды и описание полей для экрана Create Recording в транзакции LSMW.

После задания кода и наименования всех полей нам необходимо сохранить запись. Для этого нажимаем на кнопку «Save» вверху экрана, пиктограмма .

Получив сообщение «Data Saved» внизу экрана (Рис.26), выходим с помощью нажатия на кнопку «Back», пиктограмма .

Рисунок 26. Сообщение об успешном сохранении записи в транзакции LSMW.

Затем еще раз нажимаем на кнопку «Back», пиктограмма .

Рисунок 27. Нажимаем кнопку "Back" еще раз.

В открывшемся окне (Рис.28) ставим курсор на поле «Recording» и выбираем из списка, вызванного по средству поиска, только что созданную запись.

Рисунок 28. Выбираем запись для метода "Batch Input Recording".

После указания записи нажимаем на кнопку «SAVE» вверху экрана, пиктограмма .

Рисунок 29. После создания и указания записи нажимаем на кнопку "Save".

Получив сообщение «Data Saved» внизу экрана, выходим с помощью нажатия на кнопку «Back», пиктограмма .

Рисунок 30. Сообщение об успешном сохранении записи для метода "Batch Input Recording".

Система вернет нас в экран «Process Step» и предложит перейти к следующему, второму шагу создания пакетной загрузки.

Первый шаг был наиболее объемным.

Шаг 2

На втором шаге «Maintain Source Structures» создается структура источника данных. Для этого выбираем пункт «Maintain Source Structures» и нажимаем кнопку «Execute», пиктограмма  (Рис.31)

Рисунок 31. Переходим к пункту "Maintain Source Structures".

В появившемся окне (Рис.32) переходим по меню Source Structures -> Create a Structure

Рисунок 32. Меню Source Structures -> Create a Structure

В появившемся окне (Рис.33) задаем Source Structure (задаем имя - создаем самостоятельно) и Description (Описание); затем нажимаем «Зеленую галочку», пиктограмма .

Рисунок 33. Создание структуры: задаем имя и описание.

После создания структуры нажимаем на кнопку «SAVE» вверху экрана, пиктограмма .

Рисунок 34. Сохраняем структуру.

Получив сообщение «Data Saved» внизу экрана (Рис.35), выходим с помощью нажатия на кнопку «Back», пиктограмма .

Рисунок 35. Сообщение "Data Saved" информирует об успешном создании структуры.

На этом второй шаг закончен.

Шаг 3

Обычно, система автоматически поставит выбор на следующем пункте «Maintain Source Fields». Если система этого не сделала, то мы выбираем пункт «Maintain

Ограниченный доступ

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

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

Олег Точенюк (Рейтинг: 10166) 00:04, 28 августа 2012

Хотелось бы узнать причину по которой склады требовалось бы создавать через загрузку LSMW? Обычно они создаются раз и потом редко изменяются.
18:06, 28 августа 2012

Олег Башкатов (Рейтинг: 7701)

В начале статьи сказано, что требуется создать более 500 складов с указанием определенных адресных данных.
Собрать данные в файле Excel и затем их загрузить через LSMW значительно легче, чем создавать весь перечень складов через транзакцию OX09 (подчеркиваю, что в статье описано не только код-краткое имя, но и внутренние адресные данные). Кроме того, люди, создающие перечень складов как таковой, и люди, осуществляющие загрузку в системе могут быть разными (и, скорее всего, будут разными: данные поступают от разных источников, а шаблон загружает один человек). Шаблон для загрузки в Excel есть средство обмена информации между ними; тем самым исключается излишний перевод данных из одного формата в другой.
 
Касательно "Обычно они создаются раз"  - когда они этот "раз" создаются (а это может быть 1-3 месяца), то они могут часто меняться вплоть до полного изменения списка (удаляем старый перечень, загружаем новый, или необходимо краткое имя поменять в 20 складах). И подобная загрузка помогает, чтобы этот "раз" прошел успешно.
 
я правильно понял, что в предложении "Хотелось бы узнать причину по которой склады требовалось бы создавать через загрузку LSMW?" в конце предполагалась точка, а не знак вопроса? Если я неправ - с удовольствием выслушаю Вашу причину :-)
00:10, 29 августа 2012

Олег Точенюк (Рейтинг: 10166)

Ааааа, это вы увлекательный процесс реализации матответственных на ММ через склады реализовали, пропустил это предложение к сожалению, так как читал давно, а вопрос написал только на днях? Ну так это решение через одно место, не буду говорить какое, но слова счастье из него сложить сложно... хотя смотрю до сих пор многие этим и занимаются :-)
 
PS: По поводу точки после, хотелось бы знать причину, это все таки был вопрос, а не констатация факта :-)
02:13, 29 августа 2012

Олег Башкатов (Рейтинг: 7701)

Судя по всему, у Вас нет опыта работы (не говоря уже о внедрении) с масштабными системами, где заводов может быть более 200 и в каждом из них до 50 складов (и они не материально ответственные). Подобная загрузка LSMW применима не только для решения реализации мат.ответственных лиц через ММ. А касательно, самого решения: оно простое и понятное.
 
Зато, судя по комментариям к другим статьям и к моей,  есть опыт ворчания с простановкой смайликов и знаков препинания в хаотичном порядке; и еще опыт работы, с каким-то загадочным местом. Боюсь, здесь тягаться не могу да и не хочу.
08:14, 29 августа 2012

Олег Точенюк (Рейтинг: 10166)

Конечно, ведь по-факту любой проект, это что? Любой проект - это ЖОПА. А требования заказчика - это форточка. При этом обычно вы имеете большую жопу и маленькую форточку. И ваше дело эту жопу в эту форточку впихнуть и закрыть. Вот был у меня один проект ИП(ПБОЮЛ) палатка № 8, на черкизовском, вот это был проектище, под каждую группу материалов завод, под каждую номенклатурную позицию склад, вот это была сила и масштаб, ну кто понял о чем я :-)
(Комментарий удалён)
13:43, 05 сентября 2012

Олег Башкатов (Рейтинг: 7701)

Ещё месяц назад, я бы с Вами не согласился.
Но, вероятно, в этой жизни ничего не бывает просто так :-)
13:44, 05 сентября 2012

Олег Башкатов (Рейтинг: 7701)

Это я про форточку....
13:51, 05 сентября 2012

Олег Точенюк (Рейтинг: 10166)

Ну форточка это так к слову, а вот ведение на складах материально ответственных лиц, я бы поискал альтернативы . Решение через  ММ-склад это во время 2.0 / 3.0 было актуально, лет 10 минимум назад.
13:55, 05 сентября 2012

Олег Башкатов (Рейтинг: 7701)

А вот решение загружать однотипные данные через LSMW - это решение актуально и эффективно сейчас.
 
Кстати, вначале статьи было сказано: "Заказчиком принято решение для каждого материально ответственного лица создать в системе SAP отдельный склад."
В данной статье консультант исполнитель, а не методолог.
14:10, 05 сентября 2012

Олег Точенюк (Рейтинг: 10166)

В таком случае у нас разные представления о консультантах. Потому что в этом случае я вообще не понимаю какой смысл был им приглашать вас для этой задачи если они уже все решили? Значит у них есть свои специалисты, а набить 500-600 складов, любой абапер настрогает варианты за полдня.
14:19, 05 сентября 2012

Олег Башкатов (Рейтинг: 7701)

Это решение делается, максимум, 30 мин. Внимательнее смотрите текст.
 
Пример - абстрактный для показа возможностей LSMW, а не о разделении по мат.ответственным лицам. Для решения и обоснованности нужна отдельная статья.
15:14, 05 сентября 2012

Олег Башкатов (Рейтинг: 7701)

Давать подобное ТЗ абаперу - вообще говоря, отсутствие представления о рациональном использовании стандартных инструментов SAP и времени на проекте.
16:09, 05 сентября 2012

Олег Точенюк (Рейтинг: 10166)

Как то вы сами себе сильно противоречите местами, ну да ладно, что могу сказать, вы не хотите услышать, что я пытался донести до вас или же это я так не очень ясно все излагаю, ну значит не судьба дальше продолжать данную дискуссию.
16:34, 05 сентября 2012

Олег Башкатов (Рейтинг: 7701)

Тогда я резюмирую. Ваша идея: 1)решение разделения мат.ответственных через склады - устаревшее. 2) пакетную загрузку однотипных простых данных нужно делать через ABAP.
 
Мое мнение: по пункту 1) нельзя судить о решении по пяти строчкам - нужно проводить анализ и только потом утверждать подходит оно или нет.
по пункт 2) для загрузки простых однотипных данных не нужен ABAP - есть стандарт (напр., LSMW), который экономит время.
 
Больше никаких идей по существу не было в этой "дискуссии".
 
За рейтинг данной статьи - Вам ОГРОМНОЕ-ПРЕОГРОМНОЕ спасибо!!!
11:23, 29 августа 2012

Александр Дублин (Рейтинг: 13408)

Олег Б.,
умение различать "критику Решения" и "критику автора Решения" - это показатель профессиональности публициста, неумение - ....
(Комментарий удалён)

Александр Толмачев (Рейтинг: 449) 13:01, 01 февраля 2013

"И я просто АХУ... дожник так красиво все описал"" (с). Вообщем LSMW - это сила. Олег, спасибо большое за подробное изложение процедуры использования данного инструмента. И в самом деле, какая разница, чего загружать конкретно. Важно то, что этот инструмент предоставляет широкие возможности, когда приходится иметь дело с большим объемом данных, которые надо быстро загрузить в систему.
10:23, 10 февраля 2013

Олег Башкатов (Рейтинг: 7701)

Александр, спасибо большое за комментарий!
я тоже считаю, что LSMW - это инструмент, который очень и очень помогает.
 
Однако, одна из проблем, с которой я столкнулся при использовании LSMW методом Batch-Input - это загрузка ролей.
У меня не удалось создать запись, которая бы в один шаг создавала роль и прописывала орг.уровень; поэтому создавал две записи, и в итоге использовал три шага:
1) массовое создание ролей без профилей через LSMW (просто код, имя)
2) массовая генерация профилей через стандартную утилиту
3) массовое присвоение орг.уровней для созданных ролей.
 
Если есть опыт решения этой проблемы - пожалуйста, сообщите - буду благодарен.
 
Также, если сталкивались с другими "подводными камнями" LSMW Batch-Input - буду рад послушать.
11:05, 15 июля 2013

Дмитрий Каменев (Рейтинг: 26)

LSMW - это действительно мощный инструмент, но порой жалко тратить время на создание целого проекта в нем, если требуется одноразовая загрузка небольшого количества данных (100-1000 объектов, к примеру).
Когда требовалось создать около 1000 складов, то я использовал небольшой GUI-script для автоматизации их создания. На написание скрипта ушло минут 5 и еще минут 5-10 выполнялся сам скрипт. Таким образом, бОльшая часть времени ушла просто на подготовку Excel-шаблона со списком складов.
А за статью спасибо.
19:37, 15 июля 2013

Олег Башкатов (Рейтинг: 7701)

Дмитрий, спасибо за комментарий.
За статью - пожалуйста :-)
 
Не могли бы Вы рассказать про использование инструмента GUI-script поподробнее?

Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП»