Меню

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

Новое Популярное
Расширение класса по представлению данных внутренних таблиц для реализации поддержки вывода длинных текстовых данных (7)

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

Игорь Бородин

  |  29 мая 2017, 20:03

Игорь Бородин 29 мая 2017, 20:01

В новой версии XLSX Workbench VBA-макросы поддерживаются. Вместо XLSX будет формат XLSM. Подробности здесь: sites.google.com/site/sapxlwb

Расширение класса по представлению данных внутренних таблиц для реализации поддержки вывода длинных текстовых данных (7)

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

Игорь Бородин

  |  29 мая 2017, 20:01

Олег Башкатов 23 июня 2015, 18:19

Макросы могут использоваться не только для формирования :-)
но и дальнейшего использования.

В новой версии XLSX Workbench VBA-макросы поддерживаются. Вместо XLSX будет формат XLSM. Подробности здесь: sites.google.com/site/sapxlwb
SAP CATS. Обзор стандартного инструмента учета рабочего времени (2)

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

Наталья Похилева

  |  25 мая 2017, 14:13

Добрый день Сергей,
 

Очень полезная статья! Подскажите пожалуйста, а есть ли возможность стандартно забирать из HR в CO количество сотрудников ?
 
Спасибо,
Методика создания варианта транзакции: транзакция SHD0 (12)

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

Олег Точенюк

  |  24 мая 2017, 22:16

Константин Дудура 24 мая 2017, 11:13

Полезная статья, но пример, на мой взгляд, выбран не совсем удачно.
 
Для поставленой задачи (создание материала только определённого вида) существует набор стандартных транзакций (например, MMF1 для FERT). Поэтому использование вариантов транзакций для этой цели, выглядит избыточным и не совсем жизненным.
 
Было бы интересно прочитать, какие ещё реальные задачи решались с использованием этой методики и есть ли у нёё какие-то ограничения?
 
Например, можно ли её использовать в транзакциях несколькими экранами (MIGO, ME21N и подобные)?

В конкретном случае у пользователя были созданы свои Z-виды материалов. Мне в своей системе как-то не хотелось кувыркаться с таким, поэтому был взять стандартный существующий вид материала, сделан пример и отправлен клиенту в виде описания. Ну и заодно сюда, так как все делалось в виде бесплатного совета как можно сделать?!
Методика создания варианта транзакции: транзакция SHD0 (12)

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

Олег Точенюк

  |  24 мая 2017, 22:14

Евгений Лобода 24 мая 2017, 21:22

С несколькими экранами все не так радужно. Например, прописали значение по умолчанию на третьем экране. Если пользователь вызовет этот экран, то логика отработает. Если не вызовет, ограничившись в работе только первым экраном - значение не подставится.

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

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

Олег Точенюк

  |  24 мая 2017, 22:12

Вячеслав Гришин 24 мая 2017, 06:53

Прямой апдейт для добавления записи условия - плохой вариант.
1. Как минимум, не учтено отражение записи стандартном журнале изменений.
2. Если продолжать - не учитывается возможное перекрытие записи по периодам, их удаление и корректировка, как это работает в MEK1.
 

В этой конкретной задаче пожалуй можно игнорировать эти допущения. Но в общем случае - так делать нельзя. Был печальный опыт. Единственное известное мне гарантированно рабочее решение - это использовать пакетный ввод к MEK1 для ввода записей условий.

1. Я не приводил пример программы в полном объеме, это чтобы показать принцип работы, начиная от прямого указания константами значения полей.
 
2. Пакетный ввод в контексте чужой транзакции, вещь не надежная, это надо уже параллельным потомком делать и т.д. Там есть ФМ-ки которыми можно сделать ведение записей условий, они конечно не сильно отличаются фактически ручной вставки, но пакетный ввод, в данном случае будет большей проблемой, чем заполнение записи условия. Кстати, код выдернут из аналогичного ведения условия для контрактов ММ.
Методика создания варианта транзакции: транзакция SHD0 (12)

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

Евгений Лобода

  |  24 мая 2017, 21:22

Константин Дудура 24 мая 2017, 11:13

Полезная статья, но пример, на мой взгляд, выбран не совсем удачно.
 
Для поставленой задачи (создание материала только определённого вида) существует набор стандартных транзакций (например, MMF1 для FERT). Поэтому использование вариантов транзакций для этой цели, выглядит избыточным и не совсем жизненным.
 
Было бы интересно прочитать, какие ещё реальные задачи решались с использованием этой методики и есть ли у нёё какие-то ограничения?
 
Например, можно ли её использовать в транзакциях несколькими экранами (MIGO, ME21N и подобные)?

С несколькими экранами все не так радужно. Например, прописали значение по умолчанию на третьем экране. Если пользователь вызовет этот экран, то логика отработает. Если не вызовет, ограничившись в работе только первым экраном - значение не подставится.
Упрощаем работу с ADBC (3)

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

Валерий Заузолков

  |  24 мая 2017, 13:46

Просто как статья про ADBC - отлично!
 
Только объясните, пожлста, след.момент: Если система на HANA, т.е. скорее всего базис будет 7.4, а м.б. и 7.5, соответственно, есть более удобный инструментарий - можно пользоваться новым синтаксисом Open SQL, CDS-view или AMDP, для вызова процедур или вьюшек созданных непосредственно в HANA (минуя ABAP-словарь), можно создавать прокси и вызывать через них.
Зачем ADBC в контексте HANA?
 
И, как мне кажется, к ADBC относятся те же рекомендации, что и к Native SQL - по возможности предпочитать Open SQL, в связи с тем, что NW оптимизирован под использование Open SQL.
Методика создания варианта транзакции: транзакция SHD0 (12)

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

Антон Сорокин

  |  24 мая 2017, 12:46

Константин Дудура 24 мая 2017, 11:13

Полезная статья, но пример, на мой взгляд, выбран не совсем удачно.
 
Для поставленой задачи (создание материала только определённого вида) существует набор стандартных транзакций (например, MMF1 для FERT). Поэтому использование вариантов транзакций для этой цели, выглядит избыточным и не совсем жизненным.
 
Было бы интересно прочитать, какие ещё реальные задачи решались с использованием этой методики и есть ли у нёё какие-то ограничения?
 
Например, можно ли её использовать в транзакциях несколькими экранами (MIGO, ME21N и подобные)?

Практический пример - запрет редактирования полей стандартных транзакций, которые заполняются значениями по умолчанию. Т.е. запрет пользователю изменить значение по умолчанию. Это бывает полезно.
Методика создания варианта транзакции: транзакция SHD0 (12)

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

Константин Дудура

  |  24 мая 2017, 11:13

Полезная статья, но пример, на мой взгляд, выбран не совсем удачно.
 
Для поставленой задачи (создание материала только определённого вида) существует набор стандартных транзакций (например, MMF1 для FERT). Поэтому использование вариантов транзакций для этой цели, выглядит избыточным и не совсем жизненным.
 
Было бы интересно прочитать, какие ещё реальные задачи решались с использованием этой методики и есть ли у нёё какие-то ограничения?
 
Например, можно ли её использовать в транзакциях несколькими экранами (MIGO, ME21N и подобные)?
Инструкция по поиску, диагностике и реорганизации LOB-сегментов в системах SAP на базе БД Oracle (1)

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

Серго Берадзе

  |  24 мая 2017, 09:43

Добрый день.
Lob сегмент он на то и Lob что бы с ним поменьше возни было, если он растет, то значит у вас процедуры на уровне SAP по удалению объектов из таблицы к которой он привязан идут не регулярно, и нужно настраивать именно это. Один раз процедура реорганизации поможет, если были удалены какие то реально старые данные, а дальше если данные удаляются регулярно (к примеру из той же TST03) То лоб сегмент расти не будет, а будет переиспользовать освободившееся место.
 
По поводу компрессии, уместно было бы вместе с этой рекомендацией уточнить, что Oracle Advanced Compression это платная фича, и не у всех пользователей она есть, и как только вы так сжимаете хоть один сегмент в базе, она автоматически активируется.
 
С уважением Серго.
Создание собственного шага для записи условия в схеме калькуляции заказа на закупку (5)

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

Вячеслав Гришин

  |  24 мая 2017, 06:53

Прямой апдейт для добавления записи условия - плохой вариант.
1. Как минимум, не учтено отражение записи стандартном журнале изменений.
2. Если продолжать - не учитывается возможное перекрытие записи по периодам, их удаление и корректировка, как это работает в MEK1.
 

В этой конкретной задаче пожалуй можно игнорировать эти допущения. Но в общем случае - так делать нельзя. Был печальный опыт. Единственное известное мне гарантированно рабочее решение - это использовать пакетный ввод к MEK1 для ввода записей условий.
Загрузка файла в RCM-case с помощью Z-программы (1)

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

Пётр Ромащенко

  |  11 мая 2017, 15:18

Большое спасибо за отличный и ценный материал!
Oracle Linux как платформа для SAP системы (2)

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

Вячеслав Шиболов

  |  08 мая 2017, 16:04

Олег Башкатов 07 мая 2017, 17:31

>>> в качестве базы данных поддерживается только Oracle
 
а базу данных нужно отдельно приобретать? :-)

К сожалению, да. На общих основаниях. Отдельно или в рамках SAP лицензии.
Oracle Linux как платформа для SAP системы (2)

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

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

  |  07 мая 2017, 17:31

>>> в качестве базы данных поддерживается только Oracle
 
а базу данных нужно отдельно приобретать? :-)
Инструкция по использованию отладчика (10)

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

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

  |  07 мая 2017, 17:26

Олег Точенюк 13 февраля 2016, 14:42

А вот тут никогда ни не попадали в режим просмотра переменной CODE, в этот режим можно попасть выбрав конкретную запись:

Далее уже попадаем в отладчик, но в новых системах мы попадаем в метод:

Вот в этом методе жмем F7 и попадаем уже в модуль с доступом к переменной CODE

 
В более ранних системах, до 7.40 вроде как сразу попадаешь в модуль где доступна переменная CODE.

это включена системная отладка.
/hs или галочка в настройках.
 
сам постоянно натыкаюсь, особенно для CRM  и SolMan (там нет SE16N)
 
если нужна точка захожу и ставлю тут
SAPLSETB form SET_STATUS_VAL
и деактивирую, если не нужна
Инструкция по использованию отладчика (10)

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

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

  |  07 мая 2017, 11:53

Антон Сорокин 02 февраля 2016, 12:37

>>Запустите браузер данных необходимой таблицы. (se16, se11).
С каких пор SE11 стало браузером данных? :)
 
В SE16 у меня это не сработало, не вижу переменную CODE. Базис 7.40.

Если из начального экрана, то нужно обращать внимание на переменную action.
 
и перед установкой статуса экрана ( set pf-status 'XXXX' excluding excl_tab.) - смотреть на таблицу excl_tab и почистить ее - тогда будут доступны все функции при открытии таблицы.
 
Эффективные методы оптимизации процесса производственного планирования (3)

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

Аркадий Шматов

  |  05 мая 2017, 14:11

Добрый день Денис!
Не могу тебя найти.
Свяжись со мной, это важно!
arkasheek@gmail.com
Создание собственного шага для записи условия в схеме калькуляции заказа на закупку (5)

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

Олег Точенюк

  |  05 мая 2017, 10:52

Дмитрий Порушкин 04 мая 2017, 15:19

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

Да можно было и с формулой, но там надо ключ на модификацию объекта брать, а в той системе это было, ну не знаю, как с неба звездочку достать, поэтому и предпосылку не реализовывал.
 
С другой стороны (ну это чисто теоретически), калькуляция дергается при обработке заказа много и часто, а у того же SD, если в заказе позиций за 150, то производительность существенно падает. Если в формуле все время дергать таблицы заявок без буферизации можно и так усугубить и без того не быстрое обновление заказа. В общем будет время и система, попробую это же сделать через формулу.
MVC или как писать отчеты быстро и просто (15)

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

Юрий Жуков

  |  05 мая 2017, 09:23

Иван Тюменьев 28 апреля 2017, 14:48

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

>> вью будет знать с какой он работает
>>моделью. Передавая данные модели через
>>контроллер, мы убираем эту связь.
 
Вью не будет знать с какой моделью оно работает, оно будет знать только что объект который ей передали как модель реализует интерфейс, который необходим для вью. А вот передавая данные средствами контроллера как раз таки и создается высокая связность. Появляется как минимум на одну связь больше - если меняется интерфейс модели, приходится менять и котроллер.