Текущее время: Чт, мар 28 2024, 20:09

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ! Прежде чем задавать вопрос, ознакомьтесь со ссылками ниже:

Вопросы по отличиям версий SAP, Add-On, EHP - сюда
Вопросы по SAP Front End (SAPlogon, SAPgui, guiXT и т.д.) - сюда
Вопросы по LSMW - сюда
Вопросы по архивации в SAP - сюда
Вопросы по SAP GRC - сюда
Вопросы по SAP Business Workplace (почте SAP) и SAP Office - сюда
Вопросы по miniSAP (SAP mini basis) - сюда
Вопросы по SAP HANA - сюда
Вопросы по лицензированию продуктов SAP - сюда



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Пользователь не хочет видеть сообщения из sm02
СообщениеДобавлено: Пн, авг 03 2020, 15:36 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 03 2010, 16:24
Сообщения: 125
Откуда: Липецк
Пол: Женский
Здравствуйте.
Мы запустили робота, он работает под диалоговым пользователем (такая технология). В период закрытия периода пользователи любят оповещать всех через sm02, а робот ломается. Кто-нибудь отключал системные сообщения для одного диалогового пользователя?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Пользователь не хочет видеть сообщения из sm02
СообщениеДобавлено: Вт, авг 04 2020, 14:37 
Модератор
Модератор

Зарегистрирован:
Пт, окт 06 2006, 15:20
Сообщения: 338
Откуда: Москва
Пол: Мужской
Я бы в вашей ситуации просил помощь у абаперов.
Сделать версию zsm02 , скопировав весь код из стандарта и впихнуть в него проверку на вашего робота.
Пользователей переучить с sm02 на zsm02.
Использование sm02 пользователям в продуктиве запретить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пользователь не хочет видеть сообщения из sm02
СообщениеДобавлено: Вт, авг 04 2020, 20:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, фев 21 2007, 08:50
Сообщения: 1570
Откуда: Пермь
Пол: Мужской
В SM02 в явном виде выбор пользователей не осуществляется. Поэтому мне кажется, что ZSM02 профита не даст.

Но обратите внимание на логику в ФМ SM02_GET_UNREAD_MESSAGE (и до него по стеку, если отладите).
Все сводится в итоге к таблицам TEMSG (системные сообщения) и TEMSGU (последнее считанное сообщение пользователя).
Дальше логика такая: при отправке нового системного сообщения предварительно чистятся все старые сообщения из TEMSG (просрочка), а также из TEMSGU удаляются все сообщения, которые пользователь уже прочитал ранее (до текущего дня sy-datum).
Из TEMSG выбираются все актуальные сообщения и сравниваются с тем, что пользователь прочитал последним (TEMSGU-BID).
Все непрочитанные сообщения образуют таблицу сообщений и далее пошел popup.
Но фишка в том, что из TEMSG выбираются только сообщения с номером ID > LAST_USR_EMSG.
К примеру, последнее прочитанное сообщение (роботом) = 102. Запущено системное сообщение 103. 103 > 102. Поэтому робот получит 103, таблица TEMSGU обновится, а робот сломается.

Можно было бы внутри SM02_GET_UNREAD_MESSAGE расширить в самом начале и дать последний номер прочитанного роботом сообщения = 999.999. Но проблема в том, что ФМ не расширяется.

И поэтому на момент создания нового системного сообщения достаточно обеспечить для робота наличие записи в TEMSGU с текущей датой и номером сообщения = 999.999. Но кто этот герой, который будет апдейтить TEMSGU перед отправкой нового системного? ПРАВИЛЬНО. Это ночной джоб в 3 ночи, который просто будет для робота инсертить в таблицу TEMSGU строки с прочитанным сообщением 999.999 на неделю вперед. Они будут постепенно устаревать и удаляться самостоятельно по мере отправки новых сообщений. Почему желательно заложить некоторый диапазон времени наперед: потому что если робот активности в день N не проявлял, то как только начнет проявлять в день N+1, его строка из TEMSGU с днем N удалится и он получит сообщение, то есть сломается. Поэтому ночная проходка в 3 часа ночи с горизонтом на день N + 1 день.

Попробуйте. Мне кажется, что это выход из ситуации с минимальными потерями. Вы остаетесь на стандартном SM02, а abap для ночного джоба составляет 4 строки.

updated.
Проверил еще раз. Сообщение не придет, но в TEMSGU последнее полученное сообщение перетрется новым значением. Это означает, что следующее сообщение (отправленное в этот же день) роботу будет доставлено. Досадно. Надо думать дальше. Если обойти стандартные мозги не получится (уперся пока, не могу проверить), то ZSM02 в целом уже и не выглядит плохо. В самом начале ZSM02 создавать такую строку для робота в TEMSGU, апдейтить таблицу и потом надеяться, что в этот самый момент робот не ходил по диалогам. Потому что если он попадет на момент >= апдейта таблицы и <= обновления таблиц в ZSM02, то он затрет свое последнее сообщение и в итоге его получит. Других способов исключить робота в ZSM02 я не вижу: там нельзя управлять списком адресатов. Отправка сообщения инициализируется в любой момент, например, достаточно щелкнуть правой кнопкой мыши, запустить транзакцию etc.

_________________
Алё, это Пакистан? Нам нужен один килограмм


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB