Страница 1 из 2

[Решено] Сообщение о результате выполнения автоматизации

Добавлено: 17 окт 2024, 11:02
tehnos
Привет.
Кейс: по кнопке автоматизации запускается PHP скрипт.
Задача: управляемо выдавать сообщение о результате выполнения автоматизации. Например, останавливать выполнение и сообщать пользователю об ошибке нативными средствами Руководителя.
Сейчас у меня останов происходит с помощью exit(), это работает, но выглядит плохо.

Re: Сообщение о результате выполнения автоматизации

Добавлено: 17 окт 2024, 12:48
Fait
tehnos писал(а): 17 окт 2024, 11:02 Привет.
Кейс: по кнопке автоматизации запускается PHP скрипт.
Задача: управляемо выдавать сообщение о результате выполнения автоматизации. Например, останавливать выполнение и сообщать пользователю об ошибке нативными средствами Руководителя.
Сейчас у меня останов происходит с помощью exit(), это работает, но выглядит плохо.
Есть системный способ выводить баннер с сообщением.
Выводится оно просто:

Код: Выделить всё

$alerts->add($message, $type);
/*
$type =
info - голубой фон (по умолчанию)
success - зелёный фон
warning - оранжевый фон
error - красный фон
*/
Пример:

Код: Выделить всё

$alerts->add('Процесс не завершён, не указан id заказа!', 'warning');

Re: Сообщение о результате выполнения автоматизации

Добавлено: 17 окт 2024, 13:01
Parazit00
Fait писал(а): 17 окт 2024, 12:48
tehnos писал(а): 17 окт 2024, 11:02 Привет.
Кейс: по кнопке автоматизации запускается PHP скрипт.
Задача: управляемо выдавать сообщение о результате выполнения автоматизации. Например, останавливать выполнение и сообщать пользователю об ошибке нативными средствами Руководителя.
Сейчас у меня останов происходит с помощью exit(), это работает, но выглядит плохо.
Есть системный способ выводить баннер с сообщением.
Выводится оно просто:

Код: Выделить всё

$alerts->add($message, $type);
/*
$type =
info - голубой фон (по умолчанию)
success - зелёный фон
warning - оранжевый фон
error - красный фон
*/
Пример:

Код: Выделить всё

$alerts->add('Процесс не завершён, не указан id заказа!', 'warning');
Спасибо! Я и не знал, что существуют системные поля. Благодарю.

Re: Сообщение о результате выполнения автоматизации

Добавлено: 17 окт 2024, 15:29
tehnos
Это идеально!
Спасибо!

Re: [Решено] Сообщение о результате выполнения автоматизации

Добавлено: 21 окт 2024, 15:29
tehnos
Так блэт, баг подкрался незаметно...
При запуске по кнопке - всё изумительно, но вот при запуске в CRON имеем ошибку:

Код: Выделить всё

Call to a member function add() on null on line 96
Строка 96:

Код: Выделить всё

$alerts->add('Информация обновлена', 'success');
Есть идеи как исправить это неприятный нюанс? Я не могу придумать.

Re: [Решено] Сообщение о результате выполнения автоматизации

Добавлено: 21 окт 2024, 16:31
tehnos
Решил проблему проверкой user id.

Код: Выделить всё

if($app_user['id'] != 0) { $alerts->add('Информация обновлена', 'success'); }
Дело закрыто.

Re: [Решено] Сообщение о результате выполнения автоматизации

Добавлено: 21 окт 2024, 22:07
Fait
tehnos писал(а): 21 окт 2024, 15:29 Так блэт, баг подкрался незаметно...
При запуске по кнопке - всё изумительно, но вот при запуске в CRON имеем ошибку:

Код: Выделить всё

Call to a member function add() on null on line 96
Строка 96:

Код: Выделить всё

$alerts->add('Информация обновлена', 'success');
Есть идеи как исправить это неприятный нюанс? Я не могу придумать.
Да, забыл предупредить!
Для скриптов, выполняемых по крону, вызов этой функции невозможен, так как запуск производится дистанционно без участия пользователя.

Да и как бы логично, зачем выводить баннеры с сообщениями, если их смотреть некому)

Re: [Решено] Сообщение о результате выполнения автоматизации

Добавлено: 22 окт 2024, 08:20
support
Нужно проверять что $alerts является объектом.

Re: [Решено] Сообщение о результате выполнения автоматизации

Добавлено: 22 окт 2024, 08:27
nruslan2
support писал(а): 22 окт 2024, 08:20 Нужно проверять что $alerts является объектом.
это как?

Re: [Решено] Сообщение о результате выполнения автоматизации

Добавлено: 22 окт 2024, 08:45
Fait
nruslan2 писал(а): 22 окт 2024, 08:27
support писал(а): 22 окт 2024, 08:20 Нужно проверять что $alerts является объектом.
это как?
А вот так

Код: Выделить всё

if (is_object($alerts)) {
  $alerts->add('Информация обновлена', 'success'); 
}