Меню

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

Новое Популярное
REDUCE: не помнИ типизацию, а пОмни про нее (4)

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

Виталий Глущенко

  |  03 апреля 2022, 21:13

Олег Башкатов 31 марта 2022, 20:57

Спасибо!
Ваш подход классный! и здорово дополняет копилку тонкостей reduce )
 
>>> lv_total_amount поменять тип на i, то тест 1 начинает работать правильно
нет. получаемый ответ будет 604, а точный ответ 602.25.
PS. Слово "правильный" я бы заменил на точный/неточный. если требуемая точность - до сотен, то все варианты "правильные".
 
>>> а 2 и 3 считают неправильно, а если меняем тип на f
нет. подсчет идет точный, но результат 6.0225000000000000E+02 уж очень странный для переменной total_amount )))
а что подразумеваете под "2 и 3 считают неправильно"?

>>нет. получаемый ответ будет 604, а точный ответ 602.25.
>>PS. Слово "правильный" я бы заменил на точный/неточный. если требуемая точность - до сотен, то все варианты "правильные".
 
да, правильный/неправильный - плохая формулировка, но и точный/неточный тоже не хочу называть, потому что иногда в задаче требуется получить неточный результат, но он правильный по требованиям задачи.
 
Поясню, что я имел ввиду выше. В описанных примерах рассматривается ситуация когда из-за незнания как работает reduce можно получить несколько конвертаций и на каждой из них потерять точность сильнее, чем это ожидалось.
Грубо говоря конвертации у нас происходят:
  1. в строке next к типу переменной _rX_tot_am приводится тип переменной _ord_lineX-netwr;
  2. на выходе из reduce результат расчета в переменной _rX_tot_am приводится к типу указанному после reduce ...( );
  3. при присвоении переменной lv_total_amount результат шага 2 приводится к типу переменной lv_total_amount;
Предположим, что тип _ord_lineX-netwr и тип lv_total_amount у меня указан правильно(он может быть одинаковым, а может быть разным). Обычно моя задача выполнить все калькуляции и конвертацию с максимальной точностью. В таком случае хорошо, когда на шагах 1 и 2 и 3 все операции выполняются с одиним и тем же типом и лучше всего, когда это тип переменной lv_total_amount. Это важно потому что делает конструкцию менее капризной к смене типов переменных и таким образом избежать "детских" ошибок при модификации кода в будущем, когда в одном месте тип поменяли, а в другом забыли.
 
Иногда бывает, что нужно выполнять вычисления с большей точностью, чем мы потом будем хранить результат, в там случае в конструкции
    init _r4_tot_am = value #( )
я бы заменил # на явно заданный тип большей точности, но только там, а остальное оставил бы как есть, по той же самой причине, что бы конвертаций было как можно меньше.
 
>>нет. подсчет идет точный, но результат 6.0225000000000000E+02 уж очень странный для переменной total_amount )))
Почему? вполне нормальный результат, типичная экспоненциальная запись. В SAP в целом не часто используется тип float, но если в рамках задачи это требуется, то почему нет, в точности мы тут не потеряли, хотя могли и существенно.
 
>>а что подразумеваете под "2 и 3 считают неправильно"?
развернуто ответил выше, если кратко неправильным считаю, то что при смене типа его приходится менять в 3-х местах, что в будущем может привести к ошибкам.
Обучение ABAP. Логические базы данных (1)

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

Виталий Лупина

  |  09 июня 2021, 23:50

Спасибо. Полезный вебинар. Наверное даже больше для консультантов, чем для разработчиков.
Параллельное программирование c использованием ABAP Concurrency API (12)

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

Александр Носов

  |  14 апреля 2021, 16:38

Виктор Избитский 14 апреля 2021, 14:37

Текст вывода процента выполненных задач можно изменить, в отчете ZCONCURRENCY_API. Ищите вызов метода cl_progress_indicator=>progress_indicate.
Если в zif_capi_callable~call будет вызов MESSAGE TYPE 'S' ***, то статус будет отображаться корректно. Мерцаний и прочего нет. Т.е. все выглядит так, как-будто сообщения TYPE 'S' игнорируются.

Благодарю за ответы. Попробую библиотеку как будет подходящая задача.
Параллельное программирование c использованием ABAP Concurrency API (12)

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

Виктор Избитский

  |  14 апреля 2021, 14:37

Александр Носов 14 апреля 2021, 14:02

А где настраивается текст вывода процента выполненных задач?
И еще вопрос, если в zif_capi_callable~call будет вызов MESSAGE TYPE 'S' ***, корректно ли будет статус отображаться (не будут ли мерцания или сброс текста)?

Текст вывода процента выполненных задач можно изменить, в отчете ZCONCURRENCY_API. Ищите вызов метода cl_progress_indicator=>progress_indicate.
Если в zif_capi_callable~call будет вызов MESSAGE TYPE 'S' ***, то статус будет отображаться корректно. Мерцаний и прочего нет. Т.е. все выглядит так, как-будто сообщения TYPE 'S' игнорируются.
Использование алгоритмов похожести строк в ABAP c БД HANA (AMDP) и Oracle (ADBC) (2)

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

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

  |  25 февраля 2021, 19:28

Александр Грибов 25 февраля 2021, 07:25

Олег, это не статья, но целый научный труд :) Спасибо за подробные разъяснения, за рассмотрение разных подходов, объём проделанной работы поражает. Что побудило тебя так глубоко погрузиться в вопрос?
 
P.S. Какое-то время назад тоже пользовался нечётким поиском. Был проект по распознаванию отсканированных счетов-фактур, использовал нечёткий поиск для поиска материалов по наименованию. Cэкономили немало времени и сберегли человеческие нервы :) Наверное, тоже изложу свой наколеночный вариант в статье...

Александр, спасибо за обратную связь!
 
>>>Что побудило тебя так глубоко погрузиться в вопрос?
в OData есть опция search_string и paging (top/skip) - как правило, эффективнее переложить эти задачи на БД.
 
>>>>Был проект по распознаванию отсканированных счетов-фактур ..... Наверное, тоже изложу свой вариант в статье...
Ждем :-) про такое молчать не стоит - нужно делиться :-)
SAPLAND 3.0 Меняемся. И остаёмся вместе! (3)

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

Ирина Алешина

  |  11 февраля 2021, 14:34

Поздравляю команду SAPLAND!Только вперед!!
SAPLAND 3.0 Меняемся. И остаёмся вместе! (3)

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

Иван Иванов

  |  09 февраля 2021, 20:45

Вау, новый сайт очень крутой!
О фрилансе (1)

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

Дмитрий Тарасов

  |  27 февраля 2020, 19:07

Интересная тема, должен сказать. Хочется поделиться своим опытом.
 
Из моих 12 лет работы с SAP 6 лет я работал фрилансером, 2 работаю в Германии в штате вот уже второй консалтинговой компании. Я долгое время был убежден, что фриланс - это самая подходящая для меня форма работы. В последнее время я нашел плюсы работы и в консалтинге. Среди них самый основной - наличие постоянного круга лиц. Однако, я планирую и в Германии через пару лет выйти снова на фриланс. Почему - потому что это выгоднее и рисков как ни странно, на мой взгляд, меньше.  
 
Минус фриланса, что якобы проекты нестабильны или клиент может отказаться, не совсем правда. Ключ успеха на фрилансе - хорошее портфолио, наличие опыта в различных областях. Опыт показывает, что риск сидеть без проекта, либо делать неинтересную, демотивирующую работу в консалтинге гораздо выше, чем на фрилансе.
 
Свобода. Хоть фрилансер и связан некими обязательствами по контракту, однако свобода действий и выбора у него существенно выше. Так например, работая в штате на предприятии, развиваться как специалист возможно до быстро достигаемого предела, развиваться в консалтинге можно и даже хорошо, однако это сильно зависит от самой компании и руководителя. Если компания, например, плохо представлена на рынке EWM, то и интересные проекты в этой области вряд ли появятся. Фрилансер может переключаться на продукты гораздо быстрее. Более того, в штате консалтинговой компании можно получать демотивирующие задачи. Опять же об этом говорит мне мой опыт.
 
Стресс. Согласен, по степени нарастания стресса можно выстроить занятость так: штат на предприятии; штат в консалтинге; штат в любой фирме за рубежом; фриланс. Причины стресса для всех разные - для меня основная - это социальная составляющая. Частая смена коллектива не позволяет выстроить отношения. Есть знакомый фрилансер за 60 из Голландии - он прекрасно себя чувствует в этой роли. Основная сложность организации быта - наличие детей - больше не останавливает в выборе проектов. Есть другие знакомые из штата в консалтинге в таком же возрасте, работающие на одном клиенте - тоже хорошо понятная и прагматичная модель, однако лишенна интересной работы. Думаю, при выборе места в таком возрасте сильно влияют личные устремления и интересы.
 
----
 
Заходите на мой блог в LinkedIn или на моей странице. Я стараюсь делиться там совим опытом. На русском языке правда еще ничего не написал, кроме как одну статью на этом портале.
Введение в безопасность системы SAP* (10)

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

Максим Мельник

  |  31 января 2020, 13:09

Михаил Кирилловский 31 января 2020, 11:26

AIS именно и содержит набор отчетов и транзакций, которые показывают те или иные "дыры" в системе в разрезе информационной безопасности.

Назначение функционала мне понятен и часть его я уверен, что знаю. Полагал, что есть специфические настройки, которые на курсах и на Help-е SAP-а нет. Например столкнулся с событиями безопасности в SAP NW и HANA 2.0. Если мне администрация сайта даст возможность, то поделюсь с сообществом своими изысканиями.
Введение в безопасность системы SAP* (10)

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

Максим Мельник

  |  30 января 2020, 13:50

Спасибо за статью. В части безопасности SAP есть пожелания:
 
1. На что обратить при формировании требований? (предположу, что есть специфика. применимая только к SAP-системам)
2. Какие методы и инструменты используются при анализе событий безопасности?
3. Побольше конкретики в привязке к SAP, по возможности с примерами
Методологии SCRUM, Agile, Kanban для управления SAP проектами (8)

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

Игорь Плужников

  |  24 декабря 2019, 12:33

Свежий взгляд это всегда хорошо! Поэтому прототипизация проекта - да. Маленькие компании - да. Гринфилд проекты - да, но зависит от размера. Глобальные компании - нет. Браунфилд проекты - скорее нет. В итоге все равно всё скатывается к ватерфольной модели
VALUE, FOR и TABLE EXPRTESSIONS – ABAP 740 (17)

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

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

  |  06 декабря 2019, 06:20

Сергей Плаксин 21 июля 2017, 11:47

К тому же для конструкции:
WRITE: /
itab_multi_comp[ kunnr = '123' ]-ort01.
нельзя будет забывать писать
TRY.
CATCH CX_SY_ITAB_LINE_NOT_FOUND.
ENDTRY.
Иначе, приведет к неминуемому дампу, если такой записи во внутренней таблице нет.

можно так
ls_line = VALUE #( lt_tab[ f1 = 'NOT_EXIST' ] OPTIONAL ).
 
тогда не нужны проверки на исключение.
Проверка запросов перед переносом по ландшафту (14)

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

Олег Табулович

  |  28 сентября 2018, 11:46

Спасибо Женя, актуальная тема, полезная статья.
Проверка запросов перед переносом по ландшафту (14)

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

Константин Локшин

  |  27 сентября 2018, 09:02

Евгений, добрый день.
Очень хорошая статья.
Предлагаю вам сравнить вашу программу со стандартной программой для этой цели: /SDF/CMO_TR_CHECK.
Насколько я могу судить на текущий момент у стандартной программы есть полезная возможность, которой пока нет в вашей: она также показывает в каком другом запросе есть недостающий вам объект.
Клонирование ERP-системы. Подробное описание не для базисника. Продолжение (6)

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

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

  |  22 июня 2018, 17:00

Артем Дадиани 22 июня 2018, 16:43

Вячеслав, спасибо за комментарий :) В первой части я кратко описал где взять SWPM, как зайти на эту самую операционную систему. Для консультанта поиск нот, пакетов поддержки сопоставим с поиском необходимого софта. Возможно, что такие понятия как SSH, RDP и т.п. - это слишком технические моменты. Но на мой взгляд консультанты тоже в какой-то степени айтишники.
 
В идеальном мире в команде должен быть технический специалист по базису, он отвечает за подобные работы. Но что делать, если его нет, а систему надо обновить таким образом? Например, чтобы проверить установку пакетов поддержки. Или отдать в работу сторонним разработчикам актуальную версию (и вопрос не только в данных)? Это также описано в первой части.
 
Вы ведь сами вспомнили именно молодого и неопытного консультанта, который не понимал архитектуру системы. Я надеюсь, что моя статья поможет тем коллегам, кто понимает зачем необходим клон системы и тем, кто начинает в этом направлении работать без привлечения базиса. И это не про домашний САП. У меня вначале было очень много вопросов при проведении подобных операций. Я постарался обобщить и описать все шаги и все проблемы, которые пришлось решать. Возможно, что действительно очень мало таких команд, где нет базисника, но с другой стороны может кто-то из консультантов готов переквалифицироваться в базис и кто-то готов отвечать за это направление? Пусть даже и не рамках продуктивного контура.

Артем, спасибо за ответ.
Но тогда у меня такой вопрос - чем эта статья отличается от статьи на данную тему, если бы вы писали её для базисника?
 
Извините, может быть вы сочтёте это занудством, но я всё равно не понимаю, как не базис специалист, следуя вашей инструкции, выполнит, например, пункты из "Шаг 5. Основные активности после импорта". Много ли бизнес-консультантов знают что такое режимы работы системы и как их настраивать, хотя вы и указали входную транзакцию RZ04. А логон-группы? А лицензию тоже по наитию должны установить? И полномочия на запрос лицензии у их S-юзера есть? Вопросов очень много.
 
Хочу еще раз отметить. Статья неплохая. Но она для понимающего человека - для базисника. Я просто за то, чтобы не вводить консультантов в заблуждение, что они смогут это сделать.
 
И повторю вопрос - как бы вы переписали статью, если бы целевой аудиторией выбрали - базисников?
MVC и обработка событий (7)

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

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

  |  18 июня 2018, 15:52

Михаил Короченков 11 октября 2017, 15:33

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

Кроме критики хотелось бы глянуть на то, что предлагаете Вы.
Дорожная карта читателя: Ау, когнитив! или «Пушкин – наше всё» (2)

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

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

  |  21 мая 2018, 18:11

…Я находился при исполнении своих обычных служебных обязанностей, когда командующий подводными силами Атлантического флота контр-адмирал Уоткинс вызвал меня по телефону и приказал немедленно *явиться в штаб*. Когда я *прибыл*, адмирал предложил мне сесть и без соблюдения формальностей, не раскрывая цели вызова, стал расспрашивать о моей прежней службе на подводных лодках. Как только я закончил свой рассказ, адмирал тоном, который ясно показывал, что беседа закончена, сказал:
 
— Прекрасно. Сюда приезжает одно лицо, с которым я хотел бы вас познакомить. ..
 
Адмирал, очевидно, догадался, что я сгораю от любопытства, и тихо добавил:
 
— Ничего не спрашивайте. Человек, о котором я говорю, — адмирал Риковер. Предстоит важное дело, и, возможно, вам придется вместе с другими принять в нем участие.
 
Затем Уоткинс дал мне указания относительно поездки в Вашингтон для встречи с Риковером и *положил трубку*.
 
Вопрос: зачем контр-адмирал Уоткинс всё время пока говорил с автором держал трубку, если автор сидел рядом на стуле?
Дорожная карта читателя (7)

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

Ольга Петрова

  |  07 мая 2018, 18:58

Александр, добрый день!
 
Вы заставили задуматься над фразой: "Ну и кончено же, второй, я для кого-то и первой является ценность от чтения, ради которой учились древние греки :-)".
Решила, что её следует читать так: Ну и конечно же, второй, а для кого-то и первой является ценность от чтения, ради которой учились древние греки :-).
Я права?
Руководство «Ведение объектов SAP IS-U EDM». Создание единицы балансирования и сервисного провайдера (2)

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

Олег Точенюк

  |  27 ноября 2017, 22:18

Можно узнать у читателей, кто-то осилил все экраны создания? Однако, 3 экрана описания как ввести код транзакции и 9 экранов заполнения ТРЕХ полей, как говорили в одном хорошем фильме: "Сдается, господа это была комедия".
MVC и обработка событий (7)

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

Михаил Короченков

  |  11 октября 2017, 15:33

И вновь, Иван, лайк конечно за популизацию либомого мной стиля MVC в ABAPe.
Но прежде чем писать статьи такие наберитесь опыта в данном стиле ибо как пастырь поведете народ к полу-индусскому коду(не похоже что вы в таком стиле создавали действительно крупные Z-ки со множеством экранов, подэкранов и событий).
Вот вам задача на дом: если у вас будет во вью 100-ня событий обрабатываемых, будете 100 методов на каждое событие в интерфейсе создавать?!
Продолжая использовать сайт, вы соглашаетесь на обработку персональных данных, собираемых с использованием cookie-файлов и сервиса «Яндекс Метрика» для анализа использования сайта и оценки эффективности маркетинговых кампаний. Более подробная информация представлена в Политике конфиденциальности.
Понятно