Текущее время: Вт, июл 22 2025, 09:51

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


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


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Application Logs
СообщениеДобавлено: Ср, окт 31 2012, 16:32 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 07 2011, 11:46
Сообщения: 83
Добрый день, коллеги!
В целях самообучения и обучения молодого поколения мне нужно будет прочитать лекцию по Application Logs. Весь интернет мной перелопачен + немного собственной практики. Но есть к Вам 2 вопроса:
1) не могли бы Вы мне подробно объяснить, для чего нужен подобъект, зачем и как его использовать?
2) полезные и нужные вещи,фитчи, которые обходит основная теория или которые в ней упоминаются довольно редко. Может быть что-нибудь из личного опыта.

Заранее спасибо всем откликнувшимся.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 00:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Hanna_89 написал(а):
1) не могли бы Вы мне подробно объяснить, для чего нужен подобъект, зачем и как его использовать?

Подобъект нужен для разделения объекта на более мелкие составляющие.
К примеру у нас на проекте объект - это функциональная область (MM, SD, FI, etc.), а подобъект - разработка, для которой создается лог.
В результате:
а)возможен анализ сообщений специалистом по направлению
б)возможен анализ сообщений для конкретной разработки.
в)так как возможность чтения лога контролируется с помощью полномочий, можно разделить роли пользователей как по объекту, так и по подобъекту: например в случае а) в роли сотрудника поддержки будут полномочия на объект целиком, в случае б) - только на сообщения для конкретного подобъекта
Hanna_89 написал(а):
2) полезные и нужные вещи,фитчи, которые обходит основная теория или которые в ней упоминаются довольно редко. Может быть что-нибудь из личного опыта.

-Для возможности нормально использовать журнал приложений лучше обернуть вызовы стандартных функций в свой класс с более простыми методами. (спасибо Сергей Королев за наглядную демонстрацию)
-Необходимо обязательно пользоваться параметрами "Журнал приложений: дата истечения срока хранения" и "Журнал прил.: журнал сохраняется до истечения срока хранения" при создании журнала приложений и запланировать регулярную очистку лога (транзакция SLG2) - в принципе и в документации об этом сказано, но очистку лучше запланировать во всех системах сразу.
-Как показала практика, лишние "навороты" (например CALLBACK-процедуры) редко используются, поэтому увлекаться ими не стоит.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 08:16 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Выводить сообщения на экран без сохранения удобно через CL_RSDME_ERROR=>DISPLAY_LOG (обертка для Application Log). На вход подается таблица BAPIRET2_T


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 12:43 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Удав написал(а):
Для возможности нормально использовать журнал приложений лучше обернуть вызовы стандартных функций в свой класс с более простыми методами.
Это так, но не стоит забывать о том, что система "напичкана" уже готовыми решениями на все случаи жизни. Например, для простейшего вывода иерархического лога, можно воспользоваться классом CL_FPP_BAL. Пример использования:

Code:
DATA:
  lr_log              TYPE REF TO cl_fpp_bal,
  ls_balmsg           TYPE bal_s_msg.

*инициализация
TRY.
    CREATE OBJECT lr_log
      EXPORTING
        i_detlevel_active = 'X'.
  CATCH cx_fpp_bal_exc .
ENDTRY.

*добавление сообщений
ls_balmsg-detlevel = '1'.
ls_balmsg-msgty = 'I'.
ls_balmsg-msgid = '00'.
ls_balmsg-msgno = '001'.
ls_balmsg-msgv1 = 'Сообщение первого уровня'.
TRY.
    CALL METHOD lr_log->set_message( is_balmsg = ls_balmsg ).
  CATCH cx_fpp_bal_exc .
ENDTRY.

ls_balmsg-detlevel = '2'.
ls_balmsg-msgty = 'I'.
ls_balmsg-msgid = '00'.
ls_balmsg-msgno = '001'.
ls_balmsg-msgv1 = 'Сообщение второго уровня'.
TRY.
    CALL METHOD lr_log->set_message( is_balmsg = ls_balmsg ).
  CATCH cx_fpp_bal_exc .
ENDTRY.

*отображение
IF NOT lr_log->md_has_messages IS INITIAL.
  TRY.
      CALL METHOD lr_log->display( i_grid = 'X' ).
    CATCH cx_fpp_bal_exc .
  ENDTRY.
ENDIF.

Удобно действие добавления сообщения завернуть в макрос, тогда будет примерно так:
Code:
DATA:
.......
  lv_dummy            TYPE dummy.

DEFINE mk_message_catch.
  clear ls_balmsg.
  move-corresponding sy to ls_balmsg .
  ls_balmsg-detlevel = &1.
  try.
      call method lr_log->set_message( is_balmsg = ls_balmsg ).
    catch cx_fpp_bal_exc .
  endtry.
END-OF-DEFINITION.

*инициализация
.......

*добавление сообщений
MESSAGE I001(00) WITH 'Сообщение первого уровня' INTO lv_dummy.
mk_message_catch '1'.

MESSAGE I001(00) WITH 'Сообщение второго уровня' INTO lv_dummy.
mk_message_catch '2'.

*отображение
.......


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 12:53 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
А вот пример с другим классом - ещё проще (правда, иерархию не поддерживает)
Code:
DATA:
  lr_log          TYPE REF TO cl_umb_ofl_message,
  lv_dummy        TYPE dummy.

lr_log = cl_umb_ofl_message=>get_instance( ).

MESSAGE i001(00) WITH 'сообщение' INTO lv_dummy.
lr_log->append_message( ).

lr_log->show_message( ).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 13:05 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
И ещё, очень мощная штука в логе - контекст: с помощью него можно вывести в строку с сообщениями произвольный набор полей, как это например, сделано в демонстрационной программе SBAL_CALLBACK... таким образом, в некоторых случаях, для построения пользовательского интерфейса приложения можно обойтись исключительно средствами BAL Log.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Application Logs
СообщениеДобавлено: Чт, ноя 01 2012, 14:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Бородин Игорь написал(а):
Это так, но не стоит забывать о том, что система "напичкана" уже готовыми решениями на все случаи жизни.

В какой версии "напичкана"? :wink:

_________________
С уважением,
Удав.


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

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


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

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


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

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