SAPфорум.RU
https://sapboard.ru/forum/

Вывод данных на экран во время выполнения кода в START-OF-SELECTION.
https://sapboard.ru/forum/viewtopic.php?f=13&t=97736
Страница 1 из 1

Автор:  bercsoft [ Ср, июл 03 2019, 22:33 ]
Заголовок сообщения:  Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

Есть селекционных экран с "чекбоксами", каждый из которых отвечает за запуск определённой подпрограммы по обработке данных.
В START-OF-SELECTION происходит вывод z-экрана (100), на котором отображаются поля, отмеченные по селекционном экране и дополнительные информационные поля для каждого "чекбокса".
По кнопке "Выполнить", расположенной на 100 экране, осуществляется выполнение подпрограмм, выбранных на селекционном экране.
Требуется перед запуском каждой подпрограммы выводить в соответствующее поле время её запуска.
На текущий момент реализации время запуска выводится на 100 экран только после выполнения всех подпрограмм, а надо выводить перед началом выполнения каждой подпрограммы.
ФМ DYNP_VALUES_UPDATE не помогает.
А ещё хотелось бы, чтобы после отображения 100 экрана сразу же в автомате начиналось выполнение подпрограмм, т.е. чтобы не нажимать кнопку "Выполнить" и вообще избавиться от этой кнопки.

Возможно ли это реализовать и если "Да", то каким способом ?

Автор:  pberezin [ Чт, июл 04 2019, 06:51 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

а зачем такая дикая логика интерфейса? Её упростить и подогнать под саповские лекала никак нелья?

Не проще будет время выполнения например в журнал SLG1 сбрасывать, а потом просто его вывести через стандартный диалог?

И зачем тогда вообще селекционный экран - чего б сразу экран 100 не вызвать, и из него по кнопкам вызывать, потом перерисовывать (в PBO-логике подтягивать время и всё что нужно). Посмотрите как в сапе сделаны всякие "диспетчеры периодических работ".

Автор:  bercsoft [ Чт, июл 04 2019, 08:39 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

Согласен, для SAP'а логика действительно дикая, но на том же C++Builder или Visual C++ это решается парой строк кода. :-)

В журнал SLG1 это всё пишется, но требуется также отображать часть информации на экране, чтобы пользователь понимал сколько примерно по времени займёт выполнение каждого процесса, чтобы он мог заняться параллельно другой задачей или сходить попить кофейку.

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

Автор:  pberezin [ Чт, июл 04 2019, 09:02 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

bercsoft написал(а):
но на том же C++Builder или Visual C++ это решается парой строк

Вот в этом и беда, что архитекторы решений пытаются с других (не ERP) платформ, не заточенных изначально под "минимизировать нагрузку от диалоговых свистелок-перделок, ради чтоб большего количества пользователей толклось в продуктиве", тащить нарядный интеграктив :D

Сделайте кнопку "просмотр журнала прошлых запусков", и выводите SLG1. Он там сразу увидит, какие сеансы сколько работали, если на каждый свой журнал формируется. Это самое простое - и собирается из стандартных саповских "кубиков". А не тетрис :D

Автор:  pberezin [ Чт, июл 04 2019, 09:07 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

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

Мы вот както раз даже отдельную ноду поднимали на сервере приложений, куда выгоняли пользователей с такими вот тяжёлыми периодическими работами. Чтобы они не толклись на одном сервере со всеми остальными. Помогало.

Автор:  Удав [ Чт, июл 11 2019, 01:27 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

bercsoft написал(а):
требуется также отображать часть информации на экране, чтобы пользователь понимал сколько примерно по времени займёт выполнение каждого процесса,

ФМ SAP_GUI_PROGRESS_INDICATOR?

Автор:  bercsoft [ Чт, июл 11 2019, 08:46 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

Удав написал(а):
bercsoft написал(а):
требуется также отображать часть информации на экране, чтобы пользователь понимал сколько примерно по времени займёт выполнение каждого процесса,

ФМ SAP_GUI_PROGRESS_INDICATOR?


ФМ SAPGUI_PROGRESS_INDICATOR уже используется и отображает процесс выполнения по каждой подпрограмме. А мне требуется просто зафиксировать на экране время запуска каждой подпрограммы перед их запуском. Но как я уже писал, на текущий момент данные на экране отображаются только после выполнения всех подпрограмм.

Автор:  Besa [ Чт, июл 11 2019, 09:37 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

bercsoft написал(а):
Требуется перед запуском каждой подпрограммы выводить в соответствующее поле время её запуска.

bercsoft написал(а):
А ещё хотелось бы, чтобы после отображения 100 экрана сразу же в автомате начиналось выполнение подпрограмм, т.е. чтобы не нажимать кнопку "Выполнить" и вообще избавиться от этой кнопки.

bercsoft написал(а):
но на том же C++Builder или Visual C++ это решается парой строк кода.

bercsoft написал(а):
В журнал SLG1 это всё пишется, но требуется также отображать часть информации на экране, чтобы пользователь понимал сколько примерно по времени займёт выполнение каждого процесса, чтобы он мог заняться параллельно другой задачей или сходить попить кофейку.

кофейку? :shumlol:

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

Автор:  bercsoft [ Чт, июл 11 2019, 09:58 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

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


Скучно всё это в стандартных разработках, постановщик хочет, чтобы всё было интерактивно, например, как в дефрагментаторе Windows - разноцветные квадратики рисовались. ;-)
Но я уже ему сказал, что так сделать не получится, но самому всё же интересно, возможно ли такое реализовать в SAP'e.

Автор:  pberezin [ Чт, июл 11 2019, 10:03 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

bercsoft написал(а):
ФМ SAPGUI_PROGRESS_INDICATOR уже используется и отображает процесс выполнения по каждой подпрограмме. А мне требуется просто зафиксировать на экране время запуска каждой подпрограммы перед их запуском. Но как я уже писал, на текущий момент данные на экране отображаются только после выполнения всех подпрограмм.


Ну так в текстовый атрибут ФМа передавайте смысловой текст "подпрограмма запущена в HH:MM:SS", делов то.
Либо дайте пользователям транзакцию SAAB, а в коде в момент запуска вызывайте команду емнип LOG-POINT. Там какраз в саабовский лог сбросится в т.ч. дата-время. Используйте стандарт по максимуму, как совершенно правильно рекомендуют выше.
Z-интеракив это как правило жесть жестяная. :D

Автор:  Parazit [ Чт, июл 11 2019, 12:46 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

bercsoft написал(а):
...
Скучно всё это в стандартных разработках, постановщик хочет, чтобы всё было интерактивно, например, как в дефрагментаторе Windows - разноцветные квадратики рисовались. ;-)
Но я уже ему сказал, что так сделать не получится, но самому всё же интересно, возможно ли такое реализовать в SAP'e.

Разумеется возможно. Если уж Тетрис на ABAP-е есть, то "дефрагментатор" вообще не проблема. В вашем случае я бы смотрел в сторону листинга (вместо диал. экрана), поскольку он довольно прост и лёгок (в смысле нагрузки на систему).

Автор:  Kuranov.Dmitry [ Чт, июл 11 2019, 14:50 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

а листинг можно разве в рантайме обновлять?

Автор:  Kengur [ Пт, июл 12 2019, 12:23 ]
Заголовок сообщения:  Re: Вывод данных на экран во время выполнения кода в START-OF-SELECTION.

Parazit написал:
bercsoft написал(а):
...
Скучно всё это в стандартных разработках, постановщик хочет, чтобы всё было интерактивно, например, как в дефрагментаторе Windows - разноцветные квадратики рисовались. ;-)
Но я уже ему сказал, что так сделать не получится, но самому всё же интересно, возможно ли такое реализовать в SAP'e.

Разумеется возможно. Если уж Тетрис на ABAP-е есть, то "дефрагментатор" вообще не проблема. В вашем случае я бы смотрел в сторону листинга (вместо диал. экрана), поскольку он довольно прост и лёгок (в смысле нагрузки на систему).

это все сейчас делается на фиори

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/