Меню

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

Новое Популярное
Параллельное программирование c использованием ABAP Concurrency API (12)

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

Олег Точенюк

  |  14 апреля 2021, 19:59

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

Олег, да, перед созданием этого API мне действительно не нравилось то, что вы назвали: для каждого нового отчета приходится создавать RFC ФМ, писать метод/процедуру, обработку ошибок, попытку перезапуска задачи, если, например, случился дамп.
Т.е. каждый раз приходится реализовывать процесс распараллеливания заново. А если использовать предложенную разработку, этого делать уже не нужно. По большому счету нужно только описать бизнес логику и все.
Может быть как раз из-за описанных проблем вы и использовали параллельное выполнение не так часто? ;-)

Да нет,, просто не часто приходится переписывать систему, так что ну совсем не хватает производительности. Если случился дамп, то вряд ли перезапуск поможет, так как это что-то серьзное, ну у меня так обычно происходит. Осталное если честно времени особо не занимает, обычно больше времени, опять же у меня, занимает, это перепроектирование программы, которая изначально была расчитана на одни поток, чтобы она стало многопоточной.  Ну или изначальное проектирование мультипоточной программы.
 
Опять же если у вас все время пишутся мультипоточные программы, то конечно предложенный вариант удобен. Мне просто, за последние 3 года, адЫн раз пришлось такое делать и то связано это не с ускорением работы, а там просто параллельно процессы в мультимандантной среде запускались из мастер манданта, ну чтобы не тормозить процесс, все запускалось в параллельных процессах.
 
Но еще раз, в целом если вы делаете это раз в зеленую луну, как я например, то  проще выучить синтаксис стандарта и этого вполне достаточно.
Параллельное программирование 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' игнорируются.
Параллельное программирование c использованием ABAP Concurrency API (12)

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

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

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

Олег Точенюк 14 апреля 2021, 11:58

"избежать существующих сложностей, возникающих при распараллеливании программ в ABAP" - А какие сложности то? Оформить вызов RFC и возвратную процедуру/метод написать? Честно не понял в чем біыли найдены сложности сложности? Ни разу не возникало если честно. Хотя в реальности раза 3 использовал параллельное выполнение.

Олег, да, перед созданием этого API мне действительно не нравилось то, что вы назвали: для каждого нового отчета приходится создавать RFC ФМ, писать метод/процедуру, обработку ошибок, попытку перезапуска задачи, если, например, случился дамп.
Т.е. каждый раз приходится реализовывать процесс распараллеливания заново. А если использовать предложенную разработку, этого делать уже не нужно. По большому счету нужно только описать бизнес логику и все.
Может быть как раз из-за описанных проблем вы и использовали параллельное выполнение не так часто? ;-)
Параллельное программирование c использованием ABAP Concurrency API (12)

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

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

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

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

Александр, спасибо за хорошие вопросы.
На счет примеров задач:
Могу привести примеры из модуля HCM. Пожалуй одна из самых распространенных задач это сбор какой-либо информации по сотрудникам и вывод ее, например, в MS Excel. Т.е. необходимо создать отчет. Время выполнения отчета в основном будет зависеть от количества задействованных процессов, количества обрабатываемых сотрудников и алгоритма считывания информации. Поэтому строгих цифр выигрыша в производительности привести не получится. Все очень зависит от конкретной ситуации. На практике был отчет, который до распараллеливания выполнялся более 4 часов, после распараллеливания ~15 минут.
По вопросам:
1. Да, процент выполненных задач выводится

2. На сколько я понял, вы имеете в виду ноты 734205 и 710920.
Я посмотрел код SPTA Framework'а, который используется в API и в нем, перед вызовом CALL FUNCTION STARTING NEW TASK нет проверки того, что еще есть свободные сеансы пользовательского интерфейса. Т.е. это ограничение стандартного фреймворка, и расширять его пока кажется плохой идеей. Добавил описание этого ограничения в документацию на GitHub.

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

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

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

  |  14 апреля 2021, 13:32

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

Интересная библиотека, Виктор, спасибо. Хочется еще услышать примеры реальных задач и цифр в выигрыше в производительности. Также есть несколько вопросов:
1. Может ли библиотека выводить в строке состояния процент выполненных задач?
2. Как насчет распараллеливания пакетного ввода? Там помимо ограничения максимального количества задач нужно проверять еще доступные диалоги, иначе будут дампы если пользователь решит открыть еще один режим во время выполнения параллельных операций.

Александр, спасибо за хорошие вопросы.
На счет примеров задач:
Могу привести примеры из модуля HCM. Пожалуй одна из самых распространенных задач это сбор какой-либо информации по сотрудникам и вывод ее, например, в MS Excel. Т.е. необходимо создать отчет. Время выполнения отчета в основном будет зависеть от количества задействованных процессов, количества обрабатываемых сотрудников и алгоритма считывания информации. Поэтому строгих цифр выигрыша в производительности привести не получится. Все очень зависит от конкретной ситуации. На практике был отчет, который до распараллеливания выполнялся более 4 часов, после распараллеливания ~15 минут.
По вопросам:
1. Да, процент выполненных задач выводится

2. На сколько я понял, вы имеете в виду ноты 734205 и 710920.
Я посмотрел код SPTA Framework'а, который используется в API и в нем, перед вызовом CALL FUNCTION STARTING NEW TASK нет проверки того, что еще есть свободные сеансы пользовательского интерфейса. Т.е. это ограничение стандартного фреймворка, и расширять его пока кажется плохой идеей. Добавил описание этого ограничения в документацию на GitHub.
Параллельное программирование c использованием ABAP Concurrency API (12)

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

Олег Точенюк

  |  14 апреля 2021, 11:58

"избежать существующих сложностей, возникающих при распараллеливании программ в ABAP" - А какие сложности то? Оформить вызов RFC и возвратную процедуру/метод написать? Честно не понял в чем біыли найдены сложности сложности? Ни разу не возникало если честно. Хотя в реальности раза 3 использовал параллельное выполнение.
Параллельное программирование c использованием ABAP Concurrency API (12)

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

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

  |  14 апреля 2021, 09:31

Интересная библиотека, Виктор, спасибо. Хочется еще услышать примеры реальных задач и цифр в выигрыше в производительности. Также есть несколько вопросов:
1. Может ли библиотека выводить в строке состояния процент выполненных задач?
2. Как насчет распараллеливания пакетного ввода? Там помимо ограничения максимального количества задач нужно проверять еще доступные диалоги, иначе будут дампы если пользователь решит открыть еще один режим во время выполнения параллельных операций.
Общая теория архитектуры полномочий в SAP Fiori (2)

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

Андрей Кокурин

  |  25 марта 2021, 07:27

Приветствую, спасибо за отзыв, за ошибки прошу прощения. Исправлюсь
Общая теория архитектуры полномочий в SAP Fiori (2)

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

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

  |  11 марта 2021, 09:21

Андрей, добрый день!
Неплохая статья на актуальную тему, но портит впечатление большое количество опечаток-ошибок и тяжеловатых предложений. Надеюсь, корректоры портала исправят опечатки.
Вам спасибо за статью и описание своего опыта.
Использование механизма разграничения (Accrual Engine) для ведения параллельного учета (7)

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

Никита Чазов

  |  04 марта 2021, 14:51

Олег Точенюк 28 июля 2020, 18:31

Ну вот картинки исправили, все должно отображаться.

К сожалению проблема вновь актуальна. Но и без этого можно разобраться, спасибо за понятную статью!
SAP системы в виртуальной среде VMware - II (3)

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

Роман Бондарев

  |  03 марта 2021, 08:08

Вячеслав Шиболов 28 ноября 2020, 14:42

Это в большей части рекомендации вендора

Можно ссылочку Вас попросить указать на данную рекомендацию
Использование алгоритмов похожести строк в ABAP c БД HANA (AMDP) и Oracle (ADBC) (2)

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

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

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

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

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

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

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

Александр Грибов

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

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

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

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

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

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

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

Елена Рыбакова

  |  10 февраля 2021, 16:01

Иван Иванов 09 февраля 2021, 20:45

Вау, новый сайт очень крутой!

Иван, спасибо! :)
SAPLAND 3.0 Меняемся. И остаёмся вместе! (3)

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

Иван Иванов

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

Вау, новый сайт очень крутой!
Советы по развитию карьеры в SAP от SAP Expert (1)

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

Арман Алексанян

  |  21 января 2021, 11:02

Коллеги, подскажите, что вы думаете о прекращении поддержки SAP модуля HCM в 2025-2030 году?
Является ли это конечной точкой в карьере консультанта модуля HCM ?
Мнения делятся, ибо кто-то говорит - да, sap прекратит поддерживать и будем поддерживать мы (консультанты HCM). Вторая половина полагает полное слияние с другим модулем, соответственно нужно обучаться другому модулю.
 

 
Ссылка на статью:
news.sap.com/2018/01
2. Построение типовой системы управления ТОРО на платформе SAP ERP. Часть 4 (3)

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

Олег Точенюк

  |  10 декабря 2020, 02:39

Олег Башкатов 07 декабря 2020, 19:18

Думается, что речь идет о создании/управлении признаками через транзакцию CT04. Вы можете указать длину признака, возможные значения, а также можете "прикрутить" даже функциональные модули проверки.

Ну для Да/Нет оно вряд ли нужно делать программируемые проверки. А так да Олег прав, точка измерения при создании ссылается на признак системы классификации. Соответственно скорее всего вам нужно создать признак с нужными параметрами типа CHAR1 в который внести два возможные значения.