Меню

Сортировать:

Новое Популярное
Создание динамической ссылки между отчетом BusinessObjects Web Intelligence и карточкой клиента в MySapCRM (1)

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

Михаил Хорпяков

  |  18 февраля 2013, 09:12

На скриншотах SAP CRM 7.0. Торговая марка MySAP CRM была до версии 2007.
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. Часть 2. (17)

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

Олег Башкатов

  |  16 февраля 2013, 23:45

Олег Точенюк 16 февраля 2013, 22:32

1. Типа поговорили :-), вообще-то код не оптимизированный, а просто код для загрузки текстов ОЗМ.
 
2. В довесок к LSMW, к сожалению метод Direct Input реализован не для всех объектов системы, вот известный мне список реализаций прямого ввода:
 
RFBISA00 -> GL A/C Master Record
RCSBI010 -> Create Material BOM
RCSBI020 -> Change Material BOM
RM06IBI0 -> Purchasing info record.
RM06BBI0 -> Purchase requisition
RM06EEI0 -> Purchase Order
RFBIKR00 -> Vendor Master
RFBIDE00 -> Customer master
RVINVB10 -> Sales documents
RM07MMBL -> Goods movement
RFBIBL00 -> Financial documents
RAALTD11 -> Fixed Assets
RCPTRA02 -> Routing
RCRAPDX2 -> Work center
RPUSTD00 -> HR master data
RHALTD00 -> Personnel Planning

LSMW порождает код. По сравнению с "порожденным кодом от LSMW" Ваш код я назвал оптимизированным. Поэтому такое слово.
 
В любом случае, называйте как хотите - Ваш код :-)
 
На мой взгляд, в SAP нет панацеи в принципе. И уж тем более, LSMW не претендует на это звание, даже в части пакетной загрузки.
Особенно, если понимать SAP в широком смысле, а не только SAP ERP.
 
Цель моих статей про LSWM - рассказать про использование этого инструмента.
Решение о его эффективности каждый консультант будет принимать самостоятельно. я считаю, что на проектах достаточное количество случаев, когда инструмент LSMW эффективен; конечно, много случаев когда лучше использовать другие подходы.
 
PS. а тексты не считаются?
это не в довесок к LSMW, в довесок к LSWM Direct Input. Помимо Direct Input, с готовыми структурами еще есть BAPI и IDOC.
 
PPS. Проясните, пожалуйста, с отчеством.
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. Часть 2. (17)

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

Олег Точенюк

  |  16 февраля 2013, 22:32

Олег Башкатов 16 февраля 2013, 10:55

В данной статье подробно рассматривается метод Direct Input для загрузки длинных текстов.
Также в комментариях освещаются альтернативные способы загрузки длинных текстов к основной записи материала.
 
В комментариях к первой части приводится текст кода оптимизированной программы, уже готовой к использованию. Импорт программы в систему занимает не более минуты с учетом наличия ключа разработчика (sapland.ru/articles/stats/2013/1/zagruzka-dlinnih-tekstov-osnovnih-zapisei-materialov-pri-pomoschi-tranzaktsii-ls.html#comment-1514).
 
Рекомендованная последовательность действий:
1) Текст указанной программы должен быть сохранён в файле .txt с кодировкой UTF-8 на ПК консультанта;
2) Транзакция se38: указываем имя программы, нажимаем создать; далее указываем заголовок программы (свободный текст), тип (можно: "1 Выполняемыя программа"), Статус (можно: "K продуктивная программа клиента"), Приложение (можно "M Управление материальными потоками")); нажимаем сохранить; указываем пакет (скорее всего, в системе уже будет создан Z-пакет для целей разработок текущего проекта; если его нет, то предварительно создать ) и создаём запрос.
3) В меню выбираем Утилиты -> Другие утилиты -> Загрузка/Выгрузка -> Загрузка -> [выбираем файл на жёстком диске].
4) сохраняем и проверяем.
Формат загрузки показан на рисунке 63 без заголовка. Первая строка файла - это данные для загрузки, а не наименование столбцов. Поэтому из текстового файла на рисунке 63 нужно удалить строку, содержащую: MATNR TAG2 TXT132. Данные в строке разделены между собой символами tab.
 
В комментариях к первой части статьи консультанты при обсуждении решения допустили определённую вольность речи в силу того, что они не равнодушны к своей работе; данную вольность они не при каких обстоятельствах не позволят себе в общении с заказчиком и пользователями.
 
После прочтения данной статьи и комментариев, проблем с загрузкой длинных текстов к любому объекту SAP ERP возникнуть не должно. В этом ценность статьи и комментариев.
 
Автор статьи очень благодарит Олега Виталиевича Точенюк за предоставленный исходный код оптимально написанной программы ABAP.

1. Типа поговорили :-), вообще-то код не оптимизированный, а просто код для загрузки текстов ОЗМ.
 
2. В довесок к LSMW, к сожалению метод Direct Input реализован не для всех объектов системы, вот известный мне список реализаций прямого ввода:
 
RFBISA00 -> GL A/C Master Record
RCSBI010 -> Create Material BOM
RCSBI020 -> Change Material BOM
RM06IBI0 -> Purchasing info record.
RM06BBI0 -> Purchase requisition
RM06EEI0 -> Purchase Order
RFBIKR00 -> Vendor Master
RFBIDE00 -> Customer master
RVINVB10 -> Sales documents
RM07MMBL -> Goods movement
RFBIBL00 -> Financial documents
RAALTD11 -> Fixed Assets
RCPTRA02 -> Routing
RCRAPDX2 -> Work center
RPUSTD00 -> HR master data
RHALTD00 -> Personnel Planning
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. Часть 2. (17)

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

Олег Башкатов

  |  16 февраля 2013, 10:55

В данной статье подробно рассматривается метод Direct Input для загрузки длинных текстов.
Также в комментариях освещаются альтернативные способы загрузки длинных текстов к основной записи материала.
 
В комментариях к первой части приводится текст кода оптимизированной программы, уже готовой к использованию. Импорт программы в систему занимает не более минуты с учетом наличия ключа разработчика (sapland.ru/articles/stats/2013/1/zagruzka-dlinnih-tekstov-osnovnih-zapisei-materialov-pri-pomoschi-tranzaktsii-ls.html#comment-1514).
 
Рекомендованная последовательность действий:
1) Текст указанной программы должен быть сохранён в файле .txt с кодировкой UTF-8 на ПК консультанта;
2) Транзакция se38: указываем имя программы, нажимаем создать; далее указываем заголовок программы (свободный текст), тип (можно: "1 Выполняемыя программа"), Статус (можно: "K продуктивная программа клиента"), Приложение (можно "M Управление материальными потоками")); нажимаем сохранить; указываем пакет (скорее всего, в системе уже будет создан Z-пакет для целей разработок текущего проекта; если его нет, то предварительно создать ) и создаём запрос.
3) В меню выбираем Утилиты -> Другие утилиты -> Загрузка/Выгрузка -> Загрузка -> [выбираем файл на жёстком диске].
4) сохраняем и проверяем.
Формат загрузки показан на рисунке 63 без заголовка. Первая строка файла - это данные для загрузки, а не наименование столбцов. Поэтому из текстового файла на рисунке 63 нужно удалить строку, содержащую: MATNR TAG2 TXT132. Данные в строке разделены между собой символами tab.
 
В комментариях к первой части статьи консультанты при обсуждении решения допустили определённую вольность речи в силу того, что они не равнодушны к своей работе; данную вольность они не при каких обстоятельствах не позволят себе в общении с заказчиком и пользователями.
 
После прочтения данной статьи и комментариев, проблем с загрузкой длинных текстов к любому объекту SAP ERP возникнуть не должно. В этом ценность статьи и комментариев.
 
Автор статьи очень благодарит Олега Виталиевича Точенюк за предоставленный исходный код оптимально написанной программы ABAP.
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Олег Башкатов

  |  14 февраля 2013, 00:25

Олег Точенюк 13 февраля 2013, 23:13

Извините, но я очень буду просить администрация SAP-Land ни в коем случае не удалять комментарии, как говорится чтобы дурь каждого видна была.
 
1. Посмотрел, рад... очень рад, что с экселями у вас все хорошо, поэтому не понял почему проблема чтения именно из файла xls в моей программе или точнее его предварительная конвертация у вас вызвала затруднения :-).
 
2. Я думаю без посредников разберусь с другими участниками колонок.
 
3. Я вашу статью не комментировал, я предложил альтернативу, которую вы назвали "стряпней", так что извини, не надо было начинать хамить дружок.
 
4. Да вы что, я на АBAP, никогда я и SAP то вижу по праздникам, когда начальство домой уходит, а меня на прогулку выпускают. А уж функционал, это да... завод и склады грузить через LSMW ни разу не пришлось и даже не виделось в страшном сне, но благодаря вам понял, все в этой жизни бывает в первые, так что и вас тоже вылечат.

ABAP-стряпня, склады, и прочее - это одно.
 
Доказательность речи - это другое. Здесь ABAP не поможет; здесь я бы позвал на помощь CO и/или MM/SD.
Консультанты этих модулей отличаются логичностью и последовательностью :-)
 
и, Олег Виталиевич, я Вам не дружок, и дурь присутствует только Ваша.
 
1) у меня не проблема возникла; у меня возникла идея по её совершенствованию. и изумление, как такой опытный консультант, сразу не сделал так.
 
2) я только за: чтобы Вы без посредников разбирались с другими участниками колонок - не в рамках моих статей. (снова зовём CO и MM/SD). Так Вы же тут пишите.
 
3) И еще раз позовём CO-шника: то, что Вы пишите под статьёй - это комментарий. То есть, даже если Вы туда выложите приглашение на работу или резюме - то это будет комментарий, содержащий приглашение на работу или резюме. В Вашем случае комментарий содержал прогу, но это был комментарий.
 
4) сочувствую Вам.
даже "троллинг" 70х годов.
 
Следите за статьями - скоро речь пойдёт про использование ABAP-кода в процессе загрузки LSMW.
 
Олег Виталиевич, у меня вопрос: почему у Вас отчество Виталиевич, а не Витальевич?
Этот вопрос направлен исключительно на то, чтобы прояснить ситуацию с обращением и не допускать ненужных ошибок.
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Олег Точенюк

  |  13 февраля 2013, 23:13

Олег Башкатов 13 февраля 2013, 21:14

Про Excel, Олег Виталиевич, Вы меня очень обидели. В своё время я концы с концами сводил благодаря написанию форм и программ с помощью Excel/VBA. Более того, даже для военных целей разрабатывал программы (это были военные образовательные цели).
И, обидели, как всегда, в противоречии с фактами:
1) посмотрите рисунок 49 моей первой статьи про Batch-Input LSMW (sapland.ru/articles/stats)
2) и рисунки 60-63 этой статьи.
 
Поэтому я доказательно утверждаю: у Вас в комментарии ложь.
 
Остальную часть комментария трогать не буду ибо есть поговорка: не тронь ...., ...ть не будет.
 
Жаль, что Вы его сделали под моей статьёй :-(
 
Но еще больше меня возмущает факт того, что Вы бросаете тень на автора колонки, который не является участником нашего диалога. Если бы Вы это делали под своей статьёй - опять же на здоровье Вам.
 
Но под статьёй, автором которой являюсь я, этого быть не должно - я её писал для других целей.
 
а к слову сказать: сколько колонок написали Вы за более чем 2ух летний опыт пребывания на портале, что Вы бросаете тень на авторство других колонок?
 
Поэтому диалог я с Вами продолжу при наличии, как минимум, одного из двух обстоятельств, а лучше двух сразу:
 
1) Вы ответом на Ваш же комментарий попросите извинения перед автором колонок, на которого Вы бросили тень; и этот автор примет эти извинения.
 
2) Администрация sapland.ru удалит эту Вашу часть комментария, или перенесет комментарий куда-нибудь на Вашу статью: главное, чтобы не было под моей.
 
А чтобы Вы нос, Олег Виталиевич, высоко свой не задирали скажу Вам следующее:
1) это Вы комментируете мою статью; и необходимость в нем [комменте] равна необходимости пингвинов в iPod.
2) на ABAP умеете писать не только Вы (наверное, для Вас открытие).
Каждый уважающий себя консультант использует отладчик, расширения, пишет отчёты; и знает, как работает функционал. Конечно, функциональный консультант не так умело обращается с ABAP-кодом как тот, который только и делает, что пишет код на ABAP.
Часты случаи когда из консультантов по функциональным модулям переходят в консультанты ABAP и, наоборот. И такие сотрудники весьма эффективны, т.к. смотрят неоднобоко.
 

Специально для Вас резюме (а то неправильно поймете): в Вашем комменте значительно нечистот, чтобы закончить с Вами диалог.

Извините, но я очень буду просить администрация SAP-Land ни в коем случае не удалять комментарии, как говорится чтобы дурь каждого видна была.
 
1. Посмотрел, рад... очень рад, что с экселями у вас все хорошо, поэтому не понял почему проблема чтения именно из файла xls в моей программе или точнее его предварительная конвертация у вас вызвала затруднения :-).
 
2. Я думаю без посредников разберусь с другими участниками колонок.
 
3. Я вашу статью не комментировал, я предложил альтернативу, которую вы назвали "стряпней", так что извини, не надо было начинать хамить дружок.
 
4. Да вы что, я на АBAP, никогда я и SAP то вижу по праздникам, когда начальство домой уходит, а меня на прогулку выпускают. А уж функционал, это да... завод и склады грузить через LSMW ни разу не пришлось и даже не виделось в страшном сне, но благодаря вам понял, все в этой жизни бывает в первые, так что и вас тоже вылечат.
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Олег Башкатов

  |  13 февраля 2013, 21:14

Олег Точенюк 13 февраля 2013, 18:25

Да не за что.. так сказать, но как-то вы не ровно в мою сторону дышите, с чего бы это? Вот если бы это был Александр Поляков или кто там за него пишет колонку, это я еще могу как-то понять, у меня похоже идеологически разные подходы к чтению святого писания.
 

Про калошу я не понял если честно, так как писать в доказательство своих слов какие-то программки, не очень нужные мне или кому-то рядом, особо не хочется. В данный момент, как-то совпало поэтому набросал небольшой пример, заодно и время посмотрел, да в районе 30 минут, при среднем уровне знаний абапа. Вот вы там про 20 минут рассказали, вы знаете верю, только вот забыли одну мелочь, повторный импорт готового текста программы в любую систему займет минуту две, т.е. берем SE38 создаем новую программку далее Cntrl+A + Cntl+C -> Cntr+V и через минуту имеем готовую программу, протестированную ранее и полностью рабочую, хотя вы можете по этому поводу поспорить дальше.
 
1. Вы знаете действительно переход на чтение *.xls файла у меня займет минут 10, правда смысла не очень много вижу в этих действиях, хотя наверное вам операция "Сохранить как..." в экселе не ведома, поэтому и возникли данные проблемы, ну самоучитель экселя за 24 часа в руки и читаем, читаем, читаем.
 
2. Да в принципе все равно какое расширение у файла, знаете ли присвоение расширения xls не сделает файл книгой экселя, так что там все равно что в хвосте файла написано, программы знаете ли формат файла не по расширению определяют, уже лет 20 как не встречал таких программ. Хотя верю что есть еще уникальные люди, которые считают, что расширения определяет содержимое. Так что мне надо просто файл внутри которого разделитель табуляция, а как уж вы назовете эту лодку, программе все равно. Да кстати программку я запустил, результат посмотрел - работает. У меня как-то нет предвзятого отношения к расширениям файла. И кстати программы я пишу, а стряпают это где-то в другом месте.
 
3. Да читали плавали, знаем, мало того лучшие практики видели, но этой программке как-то фиолетово, так как загрузили не правильно, не страшно, запускаете второй раз с правильным файлом и все будет исправлено, но вы я так понимаю не очень представляете как работает SAVE_TEXT поэтому открою страшную тайну, он по умолчанию перегружает информацию по ключу текста. Кстати, предварительный просмотр это еще 10 минут, для простоты работы, SAP потрудился и сделал неплохой класс CL_SALV_TABLE, который позволяет вывести внутреннюю таблицу в течении 1 минуты. Меня это не затруднит сделать, если у клиента будет такая необходимость, хотя я в прошлый раз не понял на фига склады по 100 раз перегружать, так и с текстами тоже не понял, о каком постоянном использовании данной программы идет речь. Хотя опять же верю, варианты бывают разные и не все по нужде.
 
4. Как говорит народная мудрость, когда кажется - крестятся. Я вот вам почему-то верю, а вы мне постоянно нет. Все про ошибки кодирования, да какие-то песочницы рассказываете, про которые я по вашему мнению почему-то не знаю. А то типа LSMW вы сразу на боевой системе делаете, файл без всяких согласований с клиентом грузите, а потом что получилось, то получилось, главное в 20 минут успеваете как я понимаю решить все бюрократические процедуры, хотя по идее согласование формата файла с клиентом у нас должно быть по времени одинаковым.
 
Что касается ошибок кодирования, вот у меня так с абапом не выходит, там знаете ли сначала в разработке пишем, потом в тесте проверяем, потом уже продуктив, так что про ошибки кодирования это вы своей барышне расскажите за чашкой кофе, когда про ABAP-разработку в SAP ERP будете рассказывать. Да время привел без учета транспорта в продуктив, так что накиньте еще 30 секунд на STMS для продуктива.
 
Да кстати, у меня инструкция наверное займет все таки времени по меньше, чем ваша на LSMW? Нет? Ну хорошо, займет столько же, хотя экранов у меня, там будет максимум два, первый ввод файла, второй так уж и быть добавлю еще 3 строчки результата обработки данных, после загрузки итого накинем еще 5 минут к общему времени разработки.
 

Ой, а дальше давайте с вами поговорим про ваш взгляд - вот когда вы принесете мне справочку из лаборатории метрологии, где будет записано что ваш взгляд является точным прибором определяющим время работы программ на ABAP + имеющим погрешность измерения вашего взгляда, вот тогда будете рассказывать мне и остальным сказки о том что LSMW быстрее читает файл с рабочей станции, а особенно "на поржать" импортирует его в систему, как вы выразились используя Direct Input. Кстати, вы там в начале про какие-то калоши упоминали, так вот как раз сейчас речь и пойдет про эти самые калоши. Вы когда метод Direct Input выбирали на экране LSMW я так понимаю не очень поняли что оно вам там показывало, а показывало оно вам, что использоваться будет программа /SAPDMC/SAP_LSMW_IMPORT_TEXTS которая собственно говоря и проведет обновление данных длинных текстов, опять же, для вас это наверное будет открытие, но она это делает используя функцию SAVE_TEXT. А поэтому говорить, что какой-то Direct Input быстрее работает, чем приведенная мной ABAP-программа, которая тоже вы знаете пишет тексты той же функцией?! В общем возьмите свой глазок и повесьте его где-нибудь в дальнем углу и больше не используйте, а тем более не ссылайтесь на данный измерительный прибор.
 

Ну и на десерт как вы говорите оценим, опять же похоже на ваш глазок (хотя после выше приведенного примера, это уже звучит как-то странно), простоту подхода, как вы говорите. В качестве критерия вы почему-то решили использовать количество нажатий клавиш и насчитали у себя ну пусть 700, у меня вы там насчитали один диалог SE80, не угадали, эту ерунду можно и просто в SE38 набрать, а далее вы посчитали что в редакторе я нажал и ввел минимум 3782 символа. Как любят писать в интернете, "афтар пиши исчо", потому что для ввода функции загрузки файла мне нужно было сделать 5 кликов мышью + 24 нажатия на клавиатуре, по факту так как класс известный, то из 24 нажатий хватило 4 букв и два раза стрелку вниз... итого 6 мышью и 6 нажатий на клавиатуре. Так что там пропорция явно не 1 к 3, поэтому ваши 700 нажатий пусть стоят и нервно курят в стороне, потому что конечно транзакции разработки SAP-а это не верх удобства, но все таки, на данном этапе, это неплохой редактор кода, упрощающий ввод текстов за счет шаблонов и контекстных подсказок. Поэтому веселите народ в другом месте, например можно зайти к коллегам из 1С и рассказать там про ужасы разработки в SAP, по крайней мере там вам больше поверят.
 

И на остаток про широту. Минут 15 и эту программу без проблем можно модифицировать для загрузки любых текстов, для любых объектов системы, так как работа с текстами она унифицирована. Поэтому про широту тоже наверное бесполезно, это я вам верю, а вы мне почему-то нет.
 

А теперь про долготу. Пару лет назад как раз был пример LSMW или программа. Очень рекомендую попытаться загрузить используя LSMW, например остатки по карточкам ОС, при нескольких областях оценки и суммах проводок в текущем году, по разным же областям, там пару месяцев перманентно пытались это сделать, пока уже не прижало и за субботу была написано программа.. Но для вас то это тоже наверное не аргумент, скажете что там просто LSMW не знали, на что ответить вам не смогу, так как я LSMW точно не знаю, а поэтому оценивать знания по тому, что не знаю сам не умею, у вас зато это получается замечательно.
 

PS: А вообще, не обижайте абаперов, потому что абапер-профессионал, практически всегда, знает как работает функциональность под которую он пишет, в отличии от бизнес консультанта по модулю, который чаще только думает, что знает как же оно на самом деле работает.

Про Excel, Олег Виталиевич, Вы меня очень обидели. В своё время я концы с концами сводил благодаря написанию форм и программ с помощью Excel/VBA. Более того, даже для военных целей разрабатывал программы (это были военные образовательные цели).
И, обидели, как всегда, в противоречии с фактами:
1) посмотрите рисунок 49 моей первой статьи про Batch-Input LSMW (sapland.ru/articles/stats)
2) и рисунки 60-63 этой статьи.
 
Поэтому я доказательно утверждаю: у Вас в комментарии ложь.
 
Остальную часть комментария трогать не буду ибо есть поговорка: не тронь ...., ...ть не будет.
 
Жаль, что Вы его сделали под моей статьёй :-(
 
Но еще больше меня возмущает факт того, что Вы бросаете тень на автора колонки, который не является участником нашего диалога. Если бы Вы это делали под своей статьёй - опять же на здоровье Вам.
 
Но под статьёй, автором которой являюсь я, этого быть не должно - я её писал для других целей.
 
а к слову сказать: сколько колонок написали Вы за более чем 2ух летний опыт пребывания на портале, что Вы бросаете тень на авторство других колонок?
 
Поэтому диалог я с Вами продолжу при наличии, как минимум, одного из двух обстоятельств, а лучше двух сразу:
 
1) Вы ответом на Ваш же комментарий попросите извинения перед автором колонок, на которого Вы бросили тень; и этот автор примет эти извинения.
 
2) Администрация sapland.ru удалит эту Вашу часть комментария, или перенесет комментарий куда-нибудь на Вашу статью: главное, чтобы не было под моей.
 
А чтобы Вы нос, Олег Виталиевич, высоко свой не задирали скажу Вам следующее:
1) это Вы комментируете мою статью; и необходимость в нем [комменте] равна необходимости пингвинов в iPod.
2) на ABAP умеете писать не только Вы (наверное, для Вас открытие).
Каждый уважающий себя консультант использует отладчик, расширения, пишет отчёты; и знает, как работает функционал. Конечно, функциональный консультант не так умело обращается с ABAP-кодом как тот, который только и делает, что пишет код на ABAP.
Часты случаи когда из консультантов по функциональным модулям переходят в консультанты ABAP и, наоборот. И такие сотрудники весьма эффективны, т.к. смотрят неоднобоко.
 

Специально для Вас резюме (а то неправильно поймете): в Вашем комменте значительно нечистот, чтобы закончить с Вами диалог.
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Олег Точенюк

  |  13 февраля 2013, 18:25

Олег Башкатов 12 февраля 2013, 19:19

Олег Виталиевич, спасибо за комментарий!
 
Интервал "30 минут" Вы указали, чтобы не "сесть в галошу", как в прошлый раз?)))
(sapland.ru/articles/stats)
Огорчу: сели, но не так катастрофично. Поясню. Метод Direct Input не требует процедуры записи, а только сопоставление полей, поэтому занимает меньше времени, чем Batch-Input (время для которого я указал в своей прошлой статье). Поэтому создание данной загрузки я оцениваю в 20 минут.
 
Давайте сразу о Вашей программе:
1) бросается в глаза, что Вы загружаете файл из .cvs-файла, а не из .xls или .odf.
Вы не умеете делать загрузку данных из файлов .xls? Или в Вашей программе предусмотрен переход на .xls за 5 минут?
Если программу делать, то делать её удобной сразу.
 
2) пришлите пожалуйста файл загрузки в формате .cvs (именно cvs, а не csv).
я понимаю, что Вы состряпали программу на скорую руку, но можно было еще хотя бы раз запустить.
 
3) в Вашей программе отсутствует (я не заметил) процедура предварительного просмотра, что защищает от загрузки не того файла, защищает от ошибок в кодировках и, вообще, предварительный просмотр - это лучшая практика :-)))))).
Вы этого тоже не умеете делать, как консультант ABAP?)))
 
4) Ваша временные трудозатраты вообще говоря мне не кажутся реальными. Для системы-песочницы, возможно, это и так, но для того, чтобы она[программа] оказалась в продуктиве потребуется гораздо больше времени.
Процедура разработки обычно состоит из этапов (порядок может меняться, но этапы есть и их кто-то делает - скорее всего, не тот, кто загружает, но тем не менее затраты есть):
1) написание техн.задания;
2) согласование техн.задания;
3) разработка;
4) тестирование (создание протокола тестирования);
5) описание разработки;
6) перенос программы в продуктив;
7) корректировка и улучшение разработки.
+ возможно, инструкция.
 
В Ваши 30 минут, конечно же, вошло время на эту "бюрократию"? то есть приблизительно чуть более 2х минут на каждый пункт???!!!??? - очень и очень не реально.
 
Теперь об импорте программы - на мой взгляд проект LSWM импортируется быстрее, чем программа ABAP (особенно Direct Input). А объективно, если время импорта ABAP-программы из текстового файла и отличается от импорта LSMW, то речь идет о нескольких секундах - в целом, можно сказать, что как импорт программы так и проекта LSMW занимает не более минуты.
 
Оценим, простоту подходов:
 
текстовый редактор насчитал 3782 символа. то есть, как минимум, столько нужно нажать клавиш на клавиатуре, чтобы её создать - это без учета backspace; для создания загрузки через LSMW - думаю, около 700 (не считал) с учетом возможных ошибок.
Что касается диалоговых форм, то Ваша программа выигрывает: всего-то один диалог - SE80 и делов-то ))))).
Думаю (если не согласны - обоснуйте; моё обоснование - "количество нажатий") по простоте создания LSMW Direct Input выигрывает у Вашей программки даже при такой простой задаче как загрузка длинных текстов на языке системы.
 
Теперь подумаем немного шире.
Консультант, осуществивший любую загрузку методом Direct Input через LSMW, без труда перейдет к загрузке других данных.
Вопрос: за сколько Вы напишете программки для загрузки таких сущностей как: Подробные тексты, ОснЗаписи ОснСчетов, ОснЗаписи материалов, СпецификацМатериала, Сверхзапас LIFO, ОснЗаписиПоставщиков, ОснЗаписиКлиентов, Инфо-запись закупки, Запись условий, Заявка, Заказ на поставку, Торговые документы, Финансовые документы, и прочих.?
Таким образом, по критерию "переход к загрузке других данных", Ваша программа опять проигрывает; я бы даже сказал не Ваша программа, а Ваш подход.
 
Назовите и поясните, пожалуйста, хотя бы один критерий, где программа выигрывает. Только без "ну скажем" или "вот это был проектище", а желательно обосновано, если можете.
 
PS.
я поддерживаю такой подход, который удобен исполнителю (какой бы он ни был) - если Вам так удобно, то на здоровье!!!

Да не за что.. так сказать, но как-то вы не ровно в мою сторону дышите, с чего бы это? Вот если бы это был Александр Поляков или кто там за него пишет колонку, это я еще могу как-то понять, у меня похоже идеологически разные подходы к чтению святого писания.
 

Про калошу я не понял если честно, так как писать в доказательство своих слов какие-то программки, не очень нужные мне или кому-то рядом, особо не хочется. В данный момент, как-то совпало поэтому набросал небольшой пример, заодно и время посмотрел, да в районе 30 минут, при среднем уровне знаний абапа. Вот вы там про 20 минут рассказали, вы знаете верю, только вот забыли одну мелочь, повторный импорт готового текста программы в любую систему займет минуту две, т.е. берем SE38 создаем новую программку далее Cntrl+A + Cntl+C -> Cntr+V и через минуту имеем готовую программу, протестированную ранее и полностью рабочую, хотя вы можете по этому поводу поспорить дальше.
 
1. Вы знаете действительно переход на чтение *.xls файла у меня займет минут 10, правда смысла не очень много вижу в этих действиях, хотя наверное вам операция "Сохранить как..." в экселе не ведома, поэтому и возникли данные проблемы, ну самоучитель экселя за 24 часа в руки и читаем, читаем, читаем.
 
2. Да в принципе все равно какое расширение у файла, знаете ли присвоение расширения xls не сделает файл книгой экселя, так что там все равно что в хвосте файла написано, программы знаете ли формат файла не по расширению определяют, уже лет 20 как не встречал таких программ. Хотя верю что есть еще уникальные люди, которые считают, что расширения определяет содержимое. Так что мне надо просто файл внутри которого разделитель табуляция, а как уж вы назовете эту лодку, программе все равно. Да кстати программку я запустил, результат посмотрел - работает. У меня как-то нет предвзятого отношения к расширениям файла. И кстати программы я пишу, а стряпают это где-то в другом месте.
 
3. Да читали плавали, знаем, мало того лучшие практики видели, но этой программке как-то фиолетово, так как загрузили не правильно, не страшно, запускаете второй раз с правильным файлом и все будет исправлено, но вы я так понимаю не очень представляете как работает SAVE_TEXT поэтому открою страшную тайну, он по умолчанию перегружает информацию по ключу текста. Кстати, предварительный просмотр это еще 10 минут, для простоты работы, SAP потрудился и сделал неплохой класс CL_SALV_TABLE, который позволяет вывести внутреннюю таблицу в течении 1 минуты. Меня это не затруднит сделать, если у клиента будет такая необходимость, хотя я в прошлый раз не понял на фига склады по 100 раз перегружать, так и с текстами тоже не понял, о каком постоянном использовании данной программы идет речь. Хотя опять же верю, варианты бывают разные и не все по нужде.
 
4. Как говорит народная мудрость, когда кажется - крестятся. Я вот вам почему-то верю, а вы мне постоянно нет. Все про ошибки кодирования, да какие-то песочницы рассказываете, про которые я по вашему мнению почему-то не знаю. А то типа LSMW вы сразу на боевой системе делаете, файл без всяких согласований с клиентом грузите, а потом что получилось, то получилось, главное в 20 минут успеваете как я понимаю решить все бюрократические процедуры, хотя по идее согласование формата файла с клиентом у нас должно быть по времени одинаковым.
 
Что касается ошибок кодирования, вот у меня так с абапом не выходит, там знаете ли сначала в разработке пишем, потом в тесте проверяем, потом уже продуктив, так что про ошибки кодирования это вы своей барышне расскажите за чашкой кофе, когда про ABAP-разработку в SAP ERP будете рассказывать. Да время привел без учета транспорта в продуктив, так что накиньте еще 30 секунд на STMS для продуктива.
 
Да кстати, у меня инструкция наверное займет все таки времени по меньше, чем ваша на LSMW? Нет? Ну хорошо, займет столько же, хотя экранов у меня, там будет максимум два, первый ввод файла, второй так уж и быть добавлю еще 3 строчки результата обработки данных, после загрузки итого накинем еще 5 минут к общему времени разработки.
 

Ой, а дальше давайте с вами поговорим про ваш взгляд - вот когда вы принесете мне справочку из лаборатории метрологии, где будет записано что ваш взгляд является точным прибором определяющим время работы программ на ABAP + имеющим погрешность измерения вашего взгляда, вот тогда будете рассказывать мне и остальным сказки о том что LSMW быстрее читает файл с рабочей станции, а особенно "на поржать" импортирует его в систему, как вы выразились используя Direct Input. Кстати, вы там в начале про какие-то калоши упоминали, так вот как раз сейчас речь и пойдет про эти самые калоши. Вы когда метод Direct Input выбирали на экране LSMW я так понимаю не очень поняли что оно вам там показывало, а показывало оно вам, что использоваться будет программа /SAPDMC/SAP_LSMW_IMPORT_TEXTS которая собственно говоря и проведет обновление данных длинных текстов, опять же, для вас это наверное будет открытие, но она это делает используя функцию SAVE_TEXT. А поэтому говорить, что какой-то Direct Input быстрее работает, чем приведенная мной ABAP-программа, которая тоже вы знаете пишет тексты той же функцией?! В общем возьмите свой глазок и повесьте его где-нибудь в дальнем углу и больше не используйте, а тем более не ссылайтесь на данный измерительный прибор.
 

Ну и на десерт как вы говорите оценим, опять же похоже на ваш глазок (хотя после выше приведенного примера, это уже звучит как-то странно), простоту подхода, как вы говорите. В качестве критерия вы почему-то решили использовать количество нажатий клавиш и насчитали у себя ну пусть 700, у меня вы там насчитали один диалог SE80, не угадали, эту ерунду можно и просто в SE38 набрать, а далее вы посчитали что в редакторе я нажал и ввел минимум 3782 символа. Как любят писать в интернете, "афтар пиши исчо", потому что для ввода функции загрузки файла мне нужно было сделать 5 кликов мышью + 24 нажатия на клавиатуре, по факту так как класс известный, то из 24 нажатий хватило 4 букв и два раза стрелку вниз... итого 6 мышью и 6 нажатий на клавиатуре. Так что там пропорция явно не 1 к 3, поэтому ваши 700 нажатий пусть стоят и нервно курят в стороне, потому что конечно транзакции разработки SAP-а это не верх удобства, но все таки, на данном этапе, это неплохой редактор кода, упрощающий ввод текстов за счет шаблонов и контекстных подсказок. Поэтому веселите народ в другом месте, например можно зайти к коллегам из 1С и рассказать там про ужасы разработки в SAP, по крайней мере там вам больше поверят.
 

И на остаток про широту. Минут 15 и эту программу без проблем можно модифицировать для загрузки любых текстов, для любых объектов системы, так как работа с текстами она унифицирована. Поэтому про широту тоже наверное бесполезно, это я вам верю, а вы мне почему-то нет.
 

А теперь про долготу. Пару лет назад как раз был пример LSMW или программа. Очень рекомендую попытаться загрузить используя LSMW, например остатки по карточкам ОС, при нескольких областях оценки и суммах проводок в текущем году, по разным же областям, там пару месяцев перманентно пытались это сделать, пока уже не прижало и за субботу была написано программа.. Но для вас то это тоже наверное не аргумент, скажете что там просто LSMW не знали, на что ответить вам не смогу, так как я LSMW точно не знаю, а поэтому оценивать знания по тому, что не знаю сам не умею, у вас зато это получается замечательно.
 

PS: А вообще, не обижайте абаперов, потому что абапер-профессионал, практически всегда, знает как работает функциональность под которую он пишет, в отличии от бизнес консультанта по модулю, который чаще только думает, что знает как же оно на самом деле работает.
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Олег Башкатов

  |  12 февраля 2013, 19:19

Олег Точенюк 11 февраля 2013, 18:04

Программка загрузки текстов, пишется минут за, ну скажем ниже приведенную программу с нуля написал за 30 минут. Модифицировать ее под разные языки, 5 минут времени. Для загрузки под разные объекты аналогично. Импорт программы в систему клиента тоже минут 5 (LSMW пожалуй по дольше будет создаваться). Скорость, ну вряд ли, что-то будет быстрее, хотя можете на своей системе проверить.
 
*&---------------------------------------------------*
*& Report  YTSH_SAVE_LONG_TEXT
*&
*&---------------------------------------------------*
*&
*&
*&---------------------------------------------------*
REPORT ytsh_save_long_text.
TABLES: rlgrap.
 
PARAMETERS: p_file LIKE rlgrap-filename DEFAULT 'C:\1.cvs'.
 
DATA: BEGIN OF lt_text OCCURS 1,
  matnr LIKE mara-matnr,
  tdformat LIKE tline-tdformat,
  tdline LIKE tline-tdline,
END OF lt_text.
 
PERFORM read_text.
PERFORM save_text.
 
*&---------------------------------------------------*
*&      Form  READ_TEXT
*&---------------------------------------------------*
*       Прочитать файл с даннами
*----------------------------------------------------*
*  <--  LT_TEXT - Данные загруженные для обработки
*----------------------------------------------------*
FORM read_text.
  DATA: l_filename TYPE string,
        l_filelength LIKE sy-tabix.
 
  l_filename = p_file.
  CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename                = l_filename
      filetype                = 'DAT'
    IMPORTING
      filelength              = l_filelength
    CHANGING
      data_tab                = lt_text[]
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      not_supported_by_gui    = 17
      error_no_gui            = 18
      OTHERS                  = 19.
  IF sy-subrc <> 0. MESSAGE 'Ошибка чтения файла с данными' TYPE 'I'. EXIT. ENDIF.
ENDFORM.                    " READ_TEXT
*&---------------------------------------------------*
*&      Form  SAVE_TEXT
*&---------------------------------------------------*
*       text
*----------------------------------------------------*
*  -->  LT_TEXT - Данные для обработки
*----------------------------------------------------*
FORM save_text.
  DATA: l_count LIKE sy-tabix,
        ls_header LIKE thead,
        lt_lines LIKE tline OCCURS 1 WITH HEADER LINE.
  SORT lt_text BY matnr.
  CLEAR: lt_lines[].
 
  LOOP AT lt_text.
    ON CHANGE OF lt_text-matnr.
      DESCRIBE TABLE lt_lines LINES l_count.
      IF l_count > 0.
        CALL FUNCTION 'SAVE_TEXT'
          EXPORTING
            header   = ls_header
            insert   = 'I'
          TABLES
            lines    = lt_lines
          EXCEPTIONS
            id       = 1
            language = 2
            name     = 3
            object   = 4
            OTHERS   = 5.
      ENDIF.
      ls_header-tdobject = 'MATERIAL'.
      ls_header-tdname = lt_text-matnr.
      ls_header-tdlinesize = '132'.
      ls_header-tdid = 'GRUN'.
      ls_header-tdspras = sy-langu.
 
      CLEAR: lt_lines[].
    ENDON.
    MOVE-CORRESPONDING lt_text TO lt_lines.
    APPEND lt_lines.
  ENDLOOP.
 
  DESCRIBE TABLE lt_lines LINES l_count.
  IF sy-subrc = 0.
    CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        header   = ls_header
      TABLES
        lines    = lt_lines
      EXCEPTIONS
        id       = 1
        language = 2
        name     = 3
        object   = 4
        OTHERS   = 5.
  ENDIF.
  CALL FUNCTION 'COMMIT_TEXT'
    IMPORTING
      commit_count = l_count.
  IF l_count > 0. COMMIT WORK. ENDIF.
ENDFORM.                    " SAVE_TEXT

Олег Виталиевич, спасибо за комментарий!
 
Интервал "30 минут" Вы указали, чтобы не "сесть в галошу", как в прошлый раз?)))
(sapland.ru/articles/stats)
Огорчу: сели, но не так катастрофично. Поясню. Метод Direct Input не требует процедуры записи, а только сопоставление полей, поэтому занимает меньше времени, чем Batch-Input (время для которого я указал в своей прошлой статье). Поэтому создание данной загрузки я оцениваю в 20 минут.
 
Давайте сразу о Вашей программе:
1) бросается в глаза, что Вы загружаете файл из .cvs-файла, а не из .xls или .odf.
Вы не умеете делать загрузку данных из файлов .xls? Или в Вашей программе предусмотрен переход на .xls за 5 минут?
Если программу делать, то делать её удобной сразу.
 
2) пришлите пожалуйста файл загрузки в формате .cvs (именно cvs, а не csv).
я понимаю, что Вы состряпали программу на скорую руку, но можно было еще хотя бы раз запустить.
 
3) в Вашей программе отсутствует (я не заметил) процедура предварительного просмотра, что защищает от загрузки не того файла, защищает от ошибок в кодировках и, вообще, предварительный просмотр - это лучшая практика :-)))))).
Вы этого тоже не умеете делать, как консультант ABAP?)))
 
4) Ваша временные трудозатраты вообще говоря мне не кажутся реальными. Для системы-песочницы, возможно, это и так, но для того, чтобы она[программа] оказалась в продуктиве потребуется гораздо больше времени.
Процедура разработки обычно состоит из этапов (порядок может меняться, но этапы есть и их кто-то делает - скорее всего, не тот, кто загружает, но тем не менее затраты есть):
1) написание техн.задания;
2) согласование техн.задания;
3) разработка;
4) тестирование (создание протокола тестирования);
5) описание разработки;
6) перенос программы в продуктив;
7) корректировка и улучшение разработки.
+ возможно, инструкция.
 
В Ваши 30 минут, конечно же, вошло время на эту "бюрократию"? то есть приблизительно чуть более 2х минут на каждый пункт???!!!??? - очень и очень не реально.
 
Теперь об импорте программы - на мой взгляд проект LSWM импортируется быстрее, чем программа ABAP (особенно Direct Input). А объективно, если время импорта ABAP-программы из текстового файла и отличается от импорта LSMW, то речь идет о нескольких секундах - в целом, можно сказать, что как импорт программы так и проекта LSMW занимает не более минуты.
 
Оценим, простоту подходов:
 
текстовый редактор насчитал 3782 символа. то есть, как минимум, столько нужно нажать клавиш на клавиатуре, чтобы её создать - это без учета backspace; для создания загрузки через LSMW - думаю, около 700 (не считал) с учетом возможных ошибок.
Что касается диалоговых форм, то Ваша программа выигрывает: всего-то один диалог - SE80 и делов-то ))))).
Думаю (если не согласны - обоснуйте; моё обоснование - "количество нажатий") по простоте создания LSMW Direct Input выигрывает у Вашей программки даже при такой простой задаче как загрузка длинных текстов на языке системы.
 
Теперь подумаем немного шире.
Консультант, осуществивший любую загрузку методом Direct Input через LSMW, без труда перейдет к загрузке других данных.
Вопрос: за сколько Вы напишете программки для загрузки таких сущностей как: Подробные тексты, ОснЗаписи ОснСчетов, ОснЗаписи материалов, СпецификацМатериала, Сверхзапас LIFO, ОснЗаписиПоставщиков, ОснЗаписиКлиентов, Инфо-запись закупки, Запись условий, Заявка, Заказ на поставку, Торговые документы, Финансовые документы, и прочих.?
Таким образом, по критерию "переход к загрузке других данных", Ваша программа опять проигрывает; я бы даже сказал не Ваша программа, а Ваш подход.
 
Назовите и поясните, пожалуйста, хотя бы один критерий, где программа выигрывает. Только без "ну скажем" или "вот это был проектище", а желательно обосновано, если можете.
 
PS.
я поддерживаю такой подход, который удобен исполнителю (какой бы он ни был) - если Вам так удобно, то на здоровье!!!
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Олег Точенюк

  |  11 февраля 2013, 18:04

Олег Башкатов 10 февраля 2013, 09:42

Согласен с Александром: нужна статья.
А потом сравним два подхода по следующим критериям:
 
1) простота: количество диалоговых форм, с которыми имеет дело консультант при создании той или иной загрузки, и количество кликов мышкой и нажатий клавиш с клавиатуры.
Чем меньше того и другого, тем подход проще.
 
2) возможность изменения пакетного ввода по загрузки текста основных данных к "длинным" сбытовым и закупочным текстам на языке, который в системе не ведется.
(например, для клиентов из Италии мы создадим длинный текст на итальянском языке, при этом в системе можно работать на английском и русском); а также трудозатратратность перехода на загрузку сбытовых и закупочных длинных текстов ОЗМ.
также оценивается по количеству кликов и нажатий на клавиатуре.
 
3) скорость осуществления загрузки на 1500 ОЗМ с длинным текстом 500 символом с различным форматированием на одном и той же системе с одинаковой загрузкой.
 
4) любые другие критерии, которые подчёркивают достоинства и недостатки того или иного подхода.
 
Итак, задача:
Имеется перечень ОЗМ, к которым требуется загрузить длинные тексты "Основные данные" к ОЗМ с различным форматированием посредством тэгов SAPscript (как это выглядит - у меня описано во второй части данной статьи).
 
А пока статьи нет, я утверждаю следующее:
1) загружать длинные тексты ОЗМ с помощью метода Batch-Input вместо DirectInput все равно, что использовать сковородку для забивание гвоздей вместо молотка.
2) твой комментарий не более, чем попытка бездоказательно "поумничать".

Программка загрузки текстов, пишется минут за, ну скажем ниже приведенную программу с нуля написал за 30 минут. Модифицировать ее под разные языки, 5 минут времени. Для загрузки под разные объекты аналогично. Импорт программы в систему клиента тоже минут 5 (LSMW пожалуй по дольше будет создаваться). Скорость, ну вряд ли, что-то будет быстрее, хотя можете на своей системе проверить.
 
*&---------------------------------------------------*
*& Report  YTSH_SAVE_LONG_TEXT
*&
*&---------------------------------------------------*
*&
*&
*&---------------------------------------------------*
REPORT ytsh_save_long_text.
TABLES: rlgrap.
 
PARAMETERS: p_file LIKE rlgrap-filename DEFAULT 'C:\1.cvs'.
 
DATA: BEGIN OF lt_text OCCURS 1,
  matnr LIKE mara-matnr,
  tdformat LIKE tline-tdformat,
  tdline LIKE tline-tdline,
END OF lt_text.
 
PERFORM read_text.
PERFORM save_text.
 
*&---------------------------------------------------*
*&      Form  READ_TEXT
*&---------------------------------------------------*
*       Прочитать файл с даннами
*----------------------------------------------------*
*  <--  LT_TEXT - Данные загруженные для обработки
*----------------------------------------------------*
FORM read_text.
  DATA: l_filename TYPE string,
        l_filelength LIKE sy-tabix.
 
  l_filename = p_file.
  CALL METHOD cl_gui_frontend_services=>gui_upload
    EXPORTING
      filename                = l_filename
      filetype                = 'DAT'
    IMPORTING
      filelength              = l_filelength
    CHANGING
      data_tab                = lt_text[]
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      not_supported_by_gui    = 17
      error_no_gui            = 18
      OTHERS                  = 19.
  IF sy-subrc <> 0. MESSAGE 'Ошибка чтения файла с данными' TYPE 'I'. EXIT. ENDIF.
ENDFORM.                    " READ_TEXT
*&---------------------------------------------------*
*&      Form  SAVE_TEXT
*&---------------------------------------------------*
*       text
*----------------------------------------------------*
*  -->  LT_TEXT - Данные для обработки
*----------------------------------------------------*
FORM save_text.
  DATA: l_count LIKE sy-tabix,
        ls_header LIKE thead,
        lt_lines LIKE tline OCCURS 1 WITH HEADER LINE.
  SORT lt_text BY matnr.
  CLEAR: lt_lines[].
 
  LOOP AT lt_text.
    ON CHANGE OF lt_text-matnr.
      DESCRIBE TABLE lt_lines LINES l_count.
      IF l_count > 0.
        CALL FUNCTION 'SAVE_TEXT'
          EXPORTING
            header   = ls_header
            insert   = 'I'
          TABLES
            lines    = lt_lines
          EXCEPTIONS
            id       = 1
            language = 2
            name     = 3
            object   = 4
            OTHERS   = 5.
      ENDIF.
      ls_header-tdobject = 'MATERIAL'.
      ls_header-tdname = lt_text-matnr.
      ls_header-tdlinesize = '132'.
      ls_header-tdid = 'GRUN'.
      ls_header-tdspras = sy-langu.
 
      CLEAR: lt_lines[].
    ENDON.
    MOVE-CORRESPONDING lt_text TO lt_lines.
    APPEND lt_lines.
  ENDLOOP.
 
  DESCRIBE TABLE lt_lines LINES l_count.
  IF sy-subrc = 0.
    CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        header   = ls_header
      TABLES
        lines    = lt_lines
      EXCEPTIONS
        id       = 1
        language = 2
        name     = 3
        object   = 4
        OTHERS   = 5.
  ENDIF.
  CALL FUNCTION 'COMMIT_TEXT'
    IMPORTING
      commit_count = l_count.
  IF l_count > 0. COMMIT WORK. ENDIF.
ENDFORM.                    " SAVE_TEXT
Создание складов с помощью функциональности LSMW (20)

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

Олег Башкатов

  |  10 февраля 2013, 10:23

Александр Толмачев 01 февраля 2013, 13:01

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

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

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

Олег Башкатов

  |  10 февраля 2013, 09:42

Андрей Белобродский 08 февраля 2013, 12:43

Привет Олег, в этом случае я обычно стандартный Batch-input делаю, мне кажется так проще. В рекординге каждую строчку заполняю цифрами, затем гружу данные в формате MATNR TEXT1 TEXT2 TEXT3...

Согласен с Александром: нужна статья.
А потом сравним два подхода по следующим критериям:
 
1) простота: количество диалоговых форм, с которыми имеет дело консультант при создании той или иной загрузки, и количество кликов мышкой и нажатий клавиш с клавиатуры.
Чем меньше того и другого, тем подход проще.
 
2) возможность изменения пакетного ввода по загрузки текста основных данных к "длинным" сбытовым и закупочным текстам на языке, который в системе не ведется.
(например, для клиентов из Италии мы создадим длинный текст на итальянском языке, при этом в системе можно работать на английском и русском); а также трудозатратратность перехода на загрузку сбытовых и закупочных длинных текстов ОЗМ.
также оценивается по количеству кликов и нажатий на клавиатуре.
 
3) скорость осуществления загрузки на 1500 ОЗМ с длинным текстом 500 символом с различным форматированием на одном и той же системе с одинаковой загрузкой.
 
4) любые другие критерии, которые подчёркивают достоинства и недостатки того или иного подхода.
 
Итак, задача:
Имеется перечень ОЗМ, к которым требуется загрузить длинные тексты "Основные данные" к ОЗМ с различным форматированием посредством тэгов SAPscript (как это выглядит - у меня описано во второй части данной статьи).
 
А пока статьи нет, я утверждаю следующее:
1) загружать длинные тексты ОЗМ с помощью метода Batch-Input вместо DirectInput все равно, что использовать сковородку для забивание гвоздей вместо молотка.
2) твой комментарий не более, чем попытка бездоказательно "поумничать".
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Александр Дублин

  |  09 февраля 2013, 22:38

Андрей Белобродский 08 февраля 2013, 12:43

Привет Олег, в этом случае я обычно стандартный Batch-input делаю, мне кажется так проще. В рекординге каждую строчку заполняю цифрами, затем гружу данные в формате MATNR TEXT1 TEXT2 TEXT3...

Андрей,
вот Вам и тема для следующей статьи :-)
Загрузка «длинных» текстов основных записей материалов при помощи транзакции LSMW. (9)

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

Андрей Белобродский

  |  08 февраля 2013, 12:43

Привет Олег, в этом случае я обычно стандартный Batch-input делаю, мне кажется так проще. В рекординге каждую строчку заполняю цифрами, затем гружу данные в формате MATNR TEXT1 TEXT2 TEXT3...
Создание складов с помощью функциональности LSMW (20)

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

Александр Толмачев

  |  01 февраля 2013, 13:01

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

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

Александр Дублин

  |  28 января 2013, 23:32

Алексей Булаков 28 января 2013, 13:13

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

Алексей!
 
Критиковать можно долго. Напишите соответствующую статью, мы её опубликуем.
Производство и закупка под проект,- заказ клиента или в свободно используемый запас (9)

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

Алексей Булаков

  |  28 января 2013, 13:13

Олег Точенюк 25 января 2013, 19:48

Что то мне кажется мы о разном, причем тут как будет формироваться готовый продукт? Он понятно появляется в ходе реализации проекта, но проект состоит из работы и материальных затрат, вот эти материалы и будут списываться на проект для формирования фактической себестоимости этих шкафов. Ну или я тогда вообще не в теме.

Да, похоже не в теме.
Автор объясняет, как планировать производство некоторых материалов в сегменте СПП-элемента, а некоторых - в сегменте завода. При этом начинает вроде правильно - в позиции сбытового заказа указывается СПП-элемент, из сегмента которого будет происходить отгрузка. Но далее для генерации потрбености в этом сегменте СПП-элемента использует резервирование на операцию сетевого графика (указывает компоненты в операции), а не передачу потребности в сегмент СПП-элемента через вид потребности позиции сбытового заказа. Вот в этом кривизна предлагаемого решения    по моему скромному мнению.
И СПП-элементы тут используются только для сегментирования планирования, а не для сбора затрат. На СПП-элементы или операции сетевых графиков тут ничего не списывается. Затраты собираются на РР заказах и в конечном итоге на материале - с аналитикой СПП-элемента или без нее.
Материалы курса ADM100 2011 года (8)

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

Михаил Сковородин

  |  28 января 2013, 12:33

Олег Точенюк 28 января 2013, 12:08

Я не имел в виду описание, просто согласно политике компании SAP, нравится она или нет, но курс случайно попасть в руки, в принципе не может... :-) по факту же, все понимаем, что пути курсов извилисты и длинны как провода у электриков.

Согласен. Но мы имеем дело с реальной жизнью. Пост корректен и полезен. Оставим как есть.
Материалы курса ADM100 2011 года (8)

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

Олег Точенюк

  |  28 января 2013, 12:08

Михаил Сковородин 28 января 2013, 11:41

Олег, приветствую!
 
Пост вполне корректный, описывающий изменения в курсе. Нет распространения всего курса и публикации его материалов.
 
Будет официальное недовольство со стороны SAP CIS, будем решать этот вопрос.

Я не имел в виду описание, просто согласно политике компании SAP, нравится она или нет, но курс случайно попасть в руки, в принципе не может... :-) по факту же, все понимаем, что пути курсов извилисты и длинны как провода у электриков.
Материалы курса ADM100 2011 года (8)

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

Михаил Сковородин

  |  28 января 2013, 11:41

Олег Точенюк 27 января 2013, 00:00

Ой, извините конечно, но с точки зрения компании SAP даже не знаю как это «к вам попало» назвать. Ну где то в районе не санкционированного доступа и использования учебных материалов компании SAP, что категорически порицается и считается недопустимым. Кстати, там в этих материалах это на первых страницах обычно написано :-), а тут ресурс официальный, так что как же вам не ай, яй, яй... такое писать...

Олег, приветствую!
 
Пост вполне корректный, описывающий изменения в курсе. Нет распространения всего курса и публикации его материалов.
 
Будет официальное недовольство со стороны SAP CIS, будем решать этот вопрос.